第7章 PHP的控制語(yǔ)句.ppt_第1頁(yè)
第7章 PHP的控制語(yǔ)句.ppt_第2頁(yè)
第7章 PHP的控制語(yǔ)句.ppt_第3頁(yè)
第7章 PHP的控制語(yǔ)句.ppt_第4頁(yè)
第7章 PHP的控制語(yǔ)句.ppt_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第7章 PHP的控制語(yǔ)句,任何PHP腳本都是由一系列語(yǔ)句構(gòu)成的。一條語(yǔ)句可以是一個(gè)賦值語(yǔ)句、一個(gè)函數(shù)調(diào)用、一個(gè)循環(huán),甚至一個(gè)什么也不做的(空語(yǔ)句)條件語(yǔ)句。語(yǔ)句通常以分號(hào)結(jié)束。此外,還可以用花括號(hào)將一組語(yǔ)句封裝成一個(gè)語(yǔ)句組。語(yǔ)句組本身可以當(dāng)作是一行語(yǔ)句。,【例7-1】ifelse判斷,if判斷分為if判斷、ifelse判斷以及ifelseelse多重判斷等三種形式。本例中對(duì)這三種結(jié)構(gòu)進(jìn)行了舉例說明。 if判斷 語(yǔ)句結(jié)構(gòu)為: if (expr) statement 如果expr的值為TRUE,PHP將執(zhí)行statement;如果值為FALSE,將忽略statement。 如: if($name=

2、sunny) echo 你的名字是對(duì)的!.;,【例7-1】ifelse判斷,ifelse判斷 語(yǔ)句結(jié)構(gòu)為: if (expr) statement1 else statement2 如果expr的值為TRUE,PHP將執(zhí)行statement1;如果值為FALSE,PHP將執(zhí)行statement2。,【例7-1】ifelse判斷,ifelseelse多重判斷 語(yǔ)句結(jié)構(gòu)為: if (expr1) statement1 elseif(expr2) statement2 elseif(exprn) statementn else statement 判斷第一個(gè)表達(dá)式expr1,如果為TRUE則執(zhí)行st

3、atement1語(yǔ)句,然后跳出,執(zhí)行后續(xù)語(yǔ)句;如果為FALSE,再接著判斷expr2,如果為TRUE則執(zhí)行statement2語(yǔ)句,然后跳出,執(zhí)行后續(xù)語(yǔ)句;如果為FALSE,再接著判斷expr3一直到exprn,若條件仍然為FALSE,則執(zhí)行else后的statement語(yǔ)句。,【例7-1】ifelse判斷,if語(yǔ)句可以無限層地嵌套在其他if語(yǔ)句中,這給程序的不同部分的條件執(zhí)行提供了充分的彈性。 注意: (1)若statement不是一條語(yǔ)句,而是若干條語(yǔ)句組,記住,一定要用括起來。 (2)else后不能跟條件表達(dá)式,若要指定新的條件表達(dá)式,則使用elseif語(yǔ)句。 (3)在PHP中,else

4、if與else if是一樣的,兩者顯示的效果一樣。,【例7-2】switchcase判斷,switch語(yǔ)句的語(yǔ)法結(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)語(yǔ)句;否則與第二個(gè)case后的表達(dá)式2進(jìn)行比較,若一直沒有找到匹配項(xiàng),則執(zhí)行default下的statement語(yǔ)句塊,直到遇到語(yǔ)句塊的結(jié)尾或者遇到break語(yǔ)句為止。,【例7-2】switchcase判

5、斷,break語(yǔ)句的意思是結(jié)束當(dāng)前循環(huán)的執(zhí)行,并把控制返回給緊跟在該循環(huán)后面的下一個(gè)語(yǔ)句。 注意: (1)并不是每一個(gè)case語(yǔ)句都需要包含一個(gè)值,可以讓某個(gè)case語(yǔ)句為空,這表示可以忽略向case結(jié)構(gòu)中添加新的語(yǔ)句。當(dāng)變量與某個(gè)值匹配,但又不希望程序執(zhí)行任何操作,就可以采取這種方法。 (2)在case語(yǔ)句中指定的表達(dá)式只能是整數(shù)、字符串、浮點(diǎn)數(shù)據(jù)類型,不能使用數(shù)組或?qū)ο笾底鳛閏ase表達(dá)式。,【例7-3】while循環(huán),while循環(huán)是PHP中最簡(jiǎn)單的循環(huán)類型,和C語(yǔ)言中的while循環(huán)一樣。while語(yǔ)句的基本格式是: while (expr) statement1; statement

6、2; 或: while (expr) statement; while語(yǔ)句的含義很簡(jiǎn)單,它告訴PHP只要while表達(dá)式的值為TRUE就重復(fù)執(zhí)行嵌套中的循環(huán)語(yǔ)句。表達(dá)式的值在每次開始循環(huán)時(shí)檢查,所以即使這個(gè)值在循環(huán)語(yǔ)句中改變了,語(yǔ)句也不會(huì)停止執(zhí)行,直到本次循環(huán)結(jié)束。有時(shí)如果while表達(dá)式的值一開始就是FALSE,則循環(huán)語(yǔ)句一次都不會(huì)執(zhí)行。,【例7-3】while循環(huán),注意: (1)實(shí)例中的“ ”。 (2)使用while循環(huán)時(shí),必須在while執(zhí)行體中使判斷條件有所改變。如果沒有的話就成為死循環(huán),永無止境地執(zhí)行下去。你會(huì)感覺到電腦越來越慢,簡(jiǎn)直不堪重負(fù),這是因?yàn)樗姥h(huán)在耗盡系統(tǒng)資源。所以一定要

7、給while循環(huán)設(shè)置一個(gè)退出循環(huán)的出口。 (3)while的判斷表達(dá)式支持所有合法的表達(dá)式,包括帶有運(yùn)算符的表達(dá)式。,【例7-4】dowhile循環(huán),dowhile語(yǔ)句的語(yǔ)法結(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);但dowhile循環(huán)則不同,先執(zhí)行一次循環(huán)體語(yǔ)句,再來判斷條件表達(dá)式的值,如果為真則繼續(xù)執(zhí)行循環(huán)體,否則跳出循環(huán)。,【例7-5】for循環(huán),for循環(huán)的語(yǔ)法結(jié)構(gòu)如下: for

8、(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】foreach循環(huán),foreach循環(huán)和Perl以及其他語(yǔ)言很像,這只是一種遍歷數(shù)組的方法。foreach循環(huán)僅能用于數(shù)組,當(dāng)試圖將其用

9、于其他數(shù)據(jù)類型或者一個(gè)未初始化的變量時(shí)會(huì)產(chǎn)生錯(cuò)誤。它有兩種語(yǔ)法,第二種比較次要,但卻是第一種的有用的擴(kuò)展。 foreach (array_expr as $value) statement foreach (array_expr as $key = $value) statement 第一種格式遍歷給定的array_expr數(shù)組。每次循環(huán)中,當(dāng)前單元的值被賦給$value并且數(shù)組內(nèi)部的指針向前移一步(因此下一次循環(huán)中將會(huì)得到下一個(gè)單元)。,【例7-6】foreach循環(huán),第二種格式做同樣的事情,不同的是當(dāng)前單元的鍵名也會(huì)在每次循環(huán)中被賦給變量$key。 也可以將本例改成第二種格式,修改如下:

10、foreach ($student as $key = $value) /循環(huán)輸出數(shù)組元素 echo $student$key = $value.n; ,【例7-6】foreach循環(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ù)組。不過

11、原數(shù)組的內(nèi)部指針的確在處理數(shù)組的過程中向前移動(dòng)了。假定foreach循環(huán)運(yùn)行到結(jié)束,原數(shù)組的內(nèi)部指針將指向數(shù)組的結(jié)尾。 (5)自PHP 5起,可以很容易地通過在 $value 之前加上expr2;expr3) if(expr4) break; ,【例7-8】continue語(yǔ)句,continue語(yǔ)句在循環(huán)結(jié)構(gòu)中用來跳過本次循環(huán)中剩余的代碼并在條件求值為真時(shí)開始執(zhí)行下一次循環(huán),可用于while循環(huán)、dowhile循環(huán)、for循環(huán)或者switchcase判斷中,功能為跳出本次循環(huán),轉(zhuǎn)而進(jìn)入下一次循環(huán)的判斷。,【例7-9】嵌套控制結(jié)構(gòu),將一種控制語(yǔ)句嵌套在另一種控制語(yǔ)句中,比如,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; /換行 上面的代碼執(zhí)行過程為:外層的for循環(huán)首先進(jìn)行計(jì)算,并執(zhí)行直到$i不再小于等于9為止。外層循環(huán)執(zhí)行1次,內(nèi)層循環(huán)執(zhí)行10次。因此,整個(gè)循環(huán)執(zhí)行了10*10次。,小結(jié),本章主要介紹

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論