版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章PHP的控制語句
任何PHP腳本都是由一系列語句構(gòu)成的。一條語句可以是一個(gè)賦值語句、一個(gè)函數(shù)調(diào)用、一個(gè)循環(huán),甚至一個(gè)什么也不做的(空語句)條件語句。語句通常以分號(hào)結(jié)束。此外,還可以用花括號(hào)將一組語句封裝成一個(gè)語句組。語句組本身可以當(dāng)作是一行語句。【例7-1】if…else判斷 if判斷分為if判斷、if…else判斷以及if…else…else多重判斷等三種形式。本例中對(duì)這三種結(jié)構(gòu)進(jìn)行了舉例說明。 if判斷
語句結(jié)構(gòu)為:if(expr)statement
如果expr的值為TRUE,PHP將執(zhí)行statement;如果值為FALSE,將忽略statement。
如:if($name=="sunny")echo"你的名字是對(duì)的!"."<br>";【例7-1】if…else判斷 if…else判斷
語句結(jié)構(gòu)為:if(expr)statement1elsestatement2
如果expr的值為TRUE,PHP將執(zhí)行statement1;如果值為FALSE,PHP將執(zhí)行statement2?!纠?-1】if…else判斷 if…else…else多重判斷
語句結(jié)構(gòu)為:if(expr1)statement1elseif(expr2)statement2……elseif(exprn)statementnelsestatement
判斷第一個(gè)表達(dá)式expr1,如果為TRUE則執(zhí)行statement1語句,然后跳出,執(zhí)行后續(xù)語句;如果為FALSE,再接著判斷expr2,如果為TRUE則執(zhí)行statement2語句,然后跳出,執(zhí)行后續(xù)語句;如果為FALSE,再接著判斷expr3……一直到exprn,若條件仍然為FALSE,則執(zhí)行else后的statement語句?!纠?-1】if…else判斷 if語句可以無限層地嵌套在其他if語句中,這給程序的不同部分的條件執(zhí)行提供了充分的彈性。注意:(1)若statement不是一條語句,而是若干條語句組,記住,一定要用{}括起來。(2)else后不能跟條件表達(dá)式,若要指定新的條件表達(dá)式,則使用elseif語句。(3)在PHP中,elseif與elseif是一樣的,兩者顯示的效果一樣?!纠?-2】switch…case判斷switch語句的語法結(jié)構(gòu)如下:switch(expr){case表達(dá)式1:statement;case表達(dá)式2:statement;……default:statement;}
執(zhí)行過程為:首先計(jì)算表達(dá)式expr,然后將這個(gè)值與第一個(gè)case后的表達(dá)式1進(jìn)行比較,若相等,則執(zhí)行該case后的相應(yīng)語句;否則與第二個(gè)case后的表達(dá)式2進(jìn)行比較……,若一直沒有找到匹配項(xiàng),則執(zhí)行default下的statement語句塊,直到遇到語句塊的結(jié)尾或者遇到break語句為止。【例7-2】switch…case判斷 break語句的意思是結(jié)束當(dāng)前循環(huán)的執(zhí)行,并把控制返回給緊跟在該循環(huán)后面的下一個(gè)語句。
注意:
(1)并不是每一個(gè)case語句都需要包含一個(gè)值,可以讓某個(gè)case語句為空,這表示可以忽略向case結(jié)構(gòu)中添加新的語句。當(dāng)變量與某個(gè)值匹配,但又不希望程序執(zhí)行任何操作,就可以采取這種方法。
(2)在case語句中指定的表達(dá)式只能是整數(shù)、字符串、浮點(diǎn)數(shù)據(jù)類型,不能使用數(shù)組或?qū)ο笾底鳛閏ase表達(dá)式?!纠?-3】while循環(huán) while循環(huán)是PHP中最簡(jiǎn)單的循環(huán)類型,和C語言中的while循環(huán)一樣。while語句的基本格式是:while(expr){statement1;statement2;}或:while(expr)statement; while語句的含義很簡(jiǎn)單,它告訴PHP只要while表達(dá)式的值為TRUE就重復(fù)執(zhí)行嵌套中的循環(huán)語句。表達(dá)式的值在每次開始循環(huán)時(shí)檢查,所以即使這個(gè)值在循環(huán)語句中改變了,語句也不會(huì)停止執(zhí)行,直到本次循環(huán)結(jié)束。有時(shí)如果while表達(dá)式的值一開始就是FALSE,則循環(huán)語句一次都不會(huì)執(zhí)行?!纠?-3】while循環(huán)
注意:
(1)實(shí)例中的“ ”代表一個(gè)半角空格;HTML用“&”加字符串表示一些特殊字符。空格是“ ”。一個(gè)漢字要占2個(gè)英文字符的大小,空2個(gè)漢字的位置就需要加4個(gè)“ ”。
(2)使用while循環(huán)時(shí),必須在while執(zhí)行體中使判斷條件有所改變。如果沒有的話就成為死循環(huán),永無止境地執(zhí)行下去。你會(huì)感覺到電腦越來越慢,簡(jiǎn)直不堪重負(fù),這是因?yàn)樗姥h(huán)在耗盡系統(tǒng)資源。所以一定要給while循環(huán)設(shè)置一個(gè)退出循環(huán)的出口。(3)while的判斷表達(dá)式支持所有合法的表達(dá)式,包括帶有運(yùn)算符的表達(dá)式。【例7-4】do…while循環(huán)do…while語句的語法結(jié)構(gòu):do{statement;}while(expr);而比較while循環(huán):while(expr){statement1;statement2;}
此時(shí)發(fā)現(xiàn),while循環(huán)一開始就進(jìn)行條件表達(dá)式的判斷,若不滿足,則一次也不執(zhí)行循環(huán)體的結(jié)構(gòu);但do…while循環(huán)則不同,先執(zhí)行一次循環(huán)體語句,再來判斷條件表達(dá)式的值,如果為真則繼續(xù)執(zhí)行循環(huán)體,否則跳出循環(huán)。【例7-5】for循環(huán) for循環(huán)的語法結(jié)構(gòu)如下:for(expr1;expr2;expr3){statement;}
其中三個(gè)表達(dá)式expr1、expr2、expr3分別有以下特點(diǎn): expr1:在循環(huán)開始時(shí)執(zhí)行一次,初始化循環(huán)控制變量。 expr2:循環(huán)控制表達(dá)式,每一次循環(huán)開始之前都要對(duì)這個(gè)表達(dá)式進(jìn)行判斷,若為真,則繼續(xù)執(zhí)行循環(huán);否則,退出循環(huán)。 expr3:對(duì)循環(huán)控制變量進(jìn)行遞增或者遞減,控制循環(huán)變量的計(jì)數(shù);這個(gè)表達(dá)式在每次循環(huán)結(jié)束之后進(jìn)行。
每個(gè)表達(dá)式都可以為空,expr2為空則無限循環(huán)下去。【例7-6】for…each循環(huán) foreach循環(huán)和Perl以及其他語言很像,這只是一種遍歷數(shù)組的方法。foreach循環(huán)僅能用于數(shù)組,當(dāng)試圖將其用于其他數(shù)據(jù)類型或者一個(gè)未初始化的變量時(shí)會(huì)產(chǎn)生錯(cuò)誤。它有兩種語法,第二種比較次要,但卻是第一種的有用的擴(kuò)展。● foreach(array_expras$value)statement● foreach(array_expras$key=>$value)statement
第一種格式遍歷給定的array_expr數(shù)組。每次循環(huán)中,當(dāng)前單元的值被賦給$value并且數(shù)組內(nèi)部的指針向前移一步(因此下一次循環(huán)中將會(huì)得到下一個(gè)單元)?!纠?-6】for…each循環(huán)
第二種格式做同樣的事情,不同的是當(dāng)前單元的鍵名也會(huì)在每次循環(huán)中被賦給變量$key。
也可以將本例改成第二種格式,修改如下:foreach($studentas$key=>$value){ //循環(huán)輸出數(shù)組元素echo"\$student[$key]=>$value.\n";}【例7-6】for…each循環(huán)注意:
(1)foreach目前只能遍歷數(shù)組和對(duì)象。
(2)foreach不支持用“@”來抑制錯(cuò)誤信息的能力。
(3)當(dāng)foreach開始執(zhí)行時(shí),數(shù)組內(nèi)部的指針會(huì)自動(dòng)指向第一個(gè)單元。這意味著不需要在foreach循環(huán)之前調(diào)用reset()。
(4)除非數(shù)組是被引用,foreach所操作的是指定數(shù)組的一個(gè)拷貝,而不是該數(shù)組本身。因此數(shù)組指針不會(huì)被each()結(jié)構(gòu)改變,對(duì)返回的數(shù)組單元的修改也不會(huì)影響原數(shù)組。不過原數(shù)組的內(nèi)部指針的確在處理數(shù)組的過程中向前移動(dòng)了。假定foreach循環(huán)運(yùn)行到結(jié)束,原數(shù)組的內(nèi)部指針將指向數(shù)組的結(jié)尾。
(5)自PHP5起,可以很容易地通過在$value之前加上&來修改數(shù)組的單元。此方法將以引用賦值而不是拷貝一個(gè)值?!纠?-7】break語句
在使用while循環(huán)、do…while循環(huán)、for循環(huán)或者在【例7-2】中出現(xiàn)的switch…case判斷時(shí),有時(shí)并不需要執(zhí)行到滿足循環(huán)控制變量的條件為止。若想在循環(huán)體中滿足某一特定條件時(shí)退出循環(huán),就會(huì)采用break語句。break語句的作用就是退出循環(huán)語句或者switch…case判斷。
在for循環(huán)中使用的語法如下:for(expr1;expr2;expr3){if(expr4)break;}【例7-8】continue語句 continue語句在循環(huán)結(jié)構(gòu)中用來跳過本次循環(huán)中剩余的代碼并在條件求值為真時(shí)開始執(zhí)行下一次循環(huán),可用于while循環(huán)、do…while循環(huán)、for循環(huán)或者switch…case判斷中,功能為跳出本次循環(huán),轉(zhuǎn)而進(jìn)入下一次循環(huán)的判斷?!纠?-9】嵌套控制結(jié)構(gòu) 將一種控制語句嵌套在另一種控制語句中,比如,for循環(huán)中可以嵌套for循環(huán)或者其他的while循環(huán)等,像本例中,for循環(huán)就嵌套了for循環(huán)。這種結(jié)構(gòu)稱為嵌套控制結(jié)構(gòu)。 如:for($i=0;$i<=9;$i++) //外層循環(huán){for($j=0;$j<=9;$j++) //內(nèi)層循環(huán){$sum=$i*$j; //乘法echo$i."*".$j."=".$sum." "; //輸出}echo"<br>"; //換行}上面的代碼執(zhí)行過程為:外層的for循環(huán)首先進(jìn)行計(jì)算,并執(zhí)行直到$i不再小于等于9為止。外層循環(huán)執(zhí)行1次,內(nèi)層循環(huán)執(zhí)行10次。因此,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 3 Festivals and Customs Extended reading 教學(xué)設(shè)計(jì)-2023-2024學(xué)年高中英語譯林版(2020)必修第二冊(cè)
- 《燭之武退秦師》導(dǎo)學(xué)案 統(tǒng)編版高中語文必修下冊(cè)
- 住房資金合同模板
- 買房合同欺詐合同模板
- 人工樁勞務(wù)合同模板
- 會(huì)員轉(zhuǎn)讓合同模板
- 佛山土地出租合同模板
- 公園保安正規(guī)合同模板
- 冷藏勞務(wù)合同模板
- 付款發(fā)貨合同模板
- 動(dòng)漫初級(jí)教程第一講課件
- 保護(hù)洱海(開學(xué)第一課)知識(shí)講解課件
- 《實(shí)驗(yàn)研究方法》課件
- (新版)衛(wèi)健學(xué)法考試試題合集350題(含答案)
- 采購合同管理課件
- 蘇教版科學(xué)一年級(jí)上冊(cè)4認(rèn)識(shí)感官課件
- 水汽壓的計(jì)算公式詳列全
- 家具檢驗(yàn)表格
- 馬工程《馬克思主義發(fā)展史》課后習(xí)題答案
- 人教版八年級(jí)歷史上冊(cè)新課標(biāo)解讀
- 華北理工大學(xué)機(jī)械原理案例分析
評(píng)論
0/150
提交評(píng)論