PHP開發(fā)從入門到精通課件第7章_第1頁
PHP開發(fā)從入門到精通課件第7章_第2頁
PHP開發(fā)從入門到精通課件第7章_第3頁
PHP開發(fā)從入門到精通課件第7章_第4頁
PHP開發(fā)從入門到精通課件第7章_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論