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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章PHP的控制語句

任何PHP腳本都是由一系列語句構成的。一條語句可以是一個賦值語句、一個函數調用、一個循環(huán),甚至一個什么也不做的(空語句)條件語句。語句通常以分號結束。此外,還可以用花括號將一組語句封裝成一個語句組。語句組本身可以當作是一行語句?!纠?-1】if…else判斷 if判斷分為if判斷、if…else判斷以及if…else…else多重判斷等三種形式。本例中對這三種結構進行了舉例說明。 if判斷

語句結構為:if(expr)statement

如果expr的值為TRUE,PHP將執(zhí)行statement;如果值為FALSE,將忽略statement。

如:if($name=="sunny")echo"你的名字是對的!"."<br>";【例7-1】if…else判斷 if…else判斷

語句結構為:if(expr)statement1elsestatement2

如果expr的值為TRUE,PHP將執(zhí)行statement1;如果值為FALSE,PHP將執(zhí)行statement2?!纠?-1】if…else判斷 if…else…else多重判斷

語句結構為:if(expr1)statement1elseif(expr2)statement2……elseif(exprn)statementnelsestatement

判斷第一個表達式expr1,如果為TRUE則執(zhí)行statement1語句,然后跳出,執(zhí)行后續(xù)語句;如果為FALSE,再接著判斷expr2,如果為TRUE則執(zhí)行statement2語句,然后跳出,執(zhí)行后續(xù)語句;如果為FALSE,再接著判斷expr3……一直到exprn,若條件仍然為FALSE,則執(zhí)行else后的statement語句。【例7-1】if…else判斷 if語句可以無限層地嵌套在其他if語句中,這給程序的不同部分的條件執(zhí)行提供了充分的彈性。注意:(1)若statement不是一條語句,而是若干條語句組,記住,一定要用{}括起來。(2)else后不能跟條件表達式,若要指定新的條件表達式,則使用elseif語句。(3)在PHP中,elseif與elseif是一樣的,兩者顯示的效果一樣?!纠?-2】switch…case判斷switch語句的語法結構如下:switch(expr){case表達式1:statement;case表達式2:statement;……default:statement;}

執(zhí)行過程為:首先計算表達式expr,然后將這個值與第一個case后的表達式1進行比較,若相等,則執(zhí)行該case后的相應語句;否則與第二個case后的表達式2進行比較……,若一直沒有找到匹配項,則執(zhí)行default下的statement語句塊,直到遇到語句塊的結尾或者遇到break語句為止?!纠?-2】switch…case判斷 break語句的意思是結束當前循環(huán)的執(zhí)行,并把控制返回給緊跟在該循環(huán)后面的下一個語句。

注意:

(1)并不是每一個case語句都需要包含一個值,可以讓某個case語句為空,這表示可以忽略向case結構中添加新的語句。當變量與某個值匹配,但又不希望程序執(zhí)行任何操作,就可以采取這種方法。

(2)在case語句中指定的表達式只能是整數、字符串、浮點數據類型,不能使用數組或對象值作為case表達式?!纠?-3】while循環(huán) while循環(huán)是PHP中最簡單的循環(huán)類型,和C語言中的while循環(huán)一樣。while語句的基本格式是:while(expr){statement1;statement2;}或:while(expr)statement; while語句的含義很簡單,它告訴PHP只要while表達式的值為TRUE就重復執(zhí)行嵌套中的循環(huán)語句。表達式的值在每次開始循環(huán)時檢查,所以即使這個值在循環(huán)語句中改變了,語句也不會停止執(zhí)行,直到本次循環(huán)結束。有時如果while表達式的值一開始就是FALSE,則循環(huán)語句一次都不會執(zhí)行?!纠?-3】while循環(huán)

注意:

(1)實例中的“ ”代表一個半角空格;HTML用“&”加字符串表示一些特殊字符??崭袷恰?nbsp;”。一個漢字要占2個英文字符的大小,空2個漢字的位置就需要加4個“ ”。

(2)使用while循環(huán)時,必須在while執(zhí)行體中使判斷條件有所改變。如果沒有的話就成為死循環(huán),永無止境地執(zhí)行下去。你會感覺到電腦越來越慢,簡直不堪重負,這是因為死循環(huán)在耗盡系統(tǒng)資源。所以一定要給while循環(huán)設置一個退出循環(huán)的出口。(3)while的判斷表達式支持所有合法的表達式,包括帶有運算符的表達式。【例7-4】do…while循環(huán)do…while語句的語法結構:do{statement;}while(expr);而比較while循環(huán):while(expr){statement1;statement2;}

此時發(fā)現,while循環(huán)一開始就進行條件表達式的判斷,若不滿足,則一次也不執(zhí)行循環(huán)體的結構;但do…while循環(huán)則不同,先執(zhí)行一次循環(huán)體語句,再來判斷條件表達式的值,如果為真則繼續(xù)執(zhí)行循環(huán)體,否則跳出循環(huán)。【例7-5】for循環(huán) for循環(huán)的語法結構如下:for(expr1;expr2;expr3){statement;}

其中三個表達式expr1、expr2、expr3分別有以下特點: expr1:在循環(huán)開始時執(zhí)行一次,初始化循環(huán)控制變量。 expr2:循環(huán)控制表達式,每一次循環(huán)開始之前都要對這個表達式進行判斷,若為真,則繼續(xù)執(zhí)行循環(huán);否則,退出循環(huán)。 expr3:對循環(huán)控制變量進行遞增或者遞減,控制循環(huán)變量的計數;這個表達式在每次循環(huán)結束之后進行。

每個表達式都可以為空,expr2為空則無限循環(huán)下去?!纠?-6】for…each循環(huán) foreach循環(huán)和Perl以及其他語言很像,這只是一種遍歷數組的方法。foreach循環(huán)僅能用于數組,當試圖將其用于其他數據類型或者一個未初始化的變量時會產生錯誤。它有兩種語法,第二種比較次要,但卻是第一種的有用的擴展?!?foreach(array_expras$value)statement● foreach(array_expras$key=>$value)statement

第一種格式遍歷給定的array_expr數組。每次循環(huán)中,當前單元的值被賦給$value并且數組內部的指針向前移一步(因此下一次循環(huán)中將會得到下一個單元)。【例7-6】for…each循環(huán)

第二種格式做同樣的事情,不同的是當前單元的鍵名也會在每次循環(huán)中被賦給變量$key。

也可以將本例改成第二種格式,修改如下:foreach($studentas$key=>$value){ //循環(huán)輸出數組元素echo"\$student[$key]=>$value.\n";}【例7-6】for…each循環(huán)注意:

(1)foreach目前只能遍歷數組和對象。

(2)foreach不支持用“@”來抑制錯誤信息的能力。

(3)當foreach開始執(zhí)行時,數組內部的指針會自動指向第一個單元。這意味著不需要在foreach循環(huán)之前調用reset()。

(4)除非數組是被引用,foreach所操作的是指定數組的一個拷貝,而不是該數組本身。因此數組指針不會被each()結構改變,對返回的數組單元的修改也不會影響原數組。不過原數組的內部指針的確在處理數組的過程中向前移動了。假定foreach循環(huán)運行到結束,原數組的內部指針將指向數組的結尾。

(5)自PHP5起,可以很容易地通過在$value之前加上&來修改數組的單元。此方法將以引用賦值而不是拷貝一個值?!纠?-7】break語句

在使用while循環(huán)、do…while循環(huán)、for循環(huán)或者在【例7-2】中出現的switch…case判斷時,有時并不需要執(zhí)行到滿足循環(huán)控制變量的條件為止。若想在循環(huán)體中滿足某一特定條件時退出循環(huán),就會采用break語句。break語句的作用就是退出循環(huán)語句或者switch…case判斷。

在for循環(huán)中使用的語法如下:for(expr1;expr2;expr3){if(expr4)break;}【例7-8】continue語句 continue語句在循環(huán)結構中用來跳過本次循環(huán)中剩余的代碼并在條件求值為真時開始執(zhí)行下一次循環(huán),可用于while循環(huán)、do…while循環(huán)、for循環(huán)或者switch…case判斷中,功能為跳出本次循環(huán),轉而進入下一次循環(huán)的判斷。【例7-9】嵌套控制結構 將一種控制語句嵌套在另一種控制語句中,比如,for循環(huán)中可以嵌套for循環(huán)或者其他的while循環(huán)等,像本例中,for循環(huán)就嵌套了for循環(huán)。這種結構稱為嵌套控制結構。 如:for($i=0;$i<=9;$i++) //外層循環(huán){for($j=0;$j<=9;$j++) //內層循環(huán){$sum=$i*$j; //乘法echo$i."*".$j."=".$sum."  "; //輸出}echo"<br>"; //換行}上面的代碼執(zhí)行過程為:外層的for循環(huán)首先進行計算,并執(zhí)行直到$i不再小于等于9為止。外層循環(huán)執(zhí)行1次,內層循環(huán)執(zhí)行10次。因此,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論