首頁 >後端開發 >php教程 >php基礎控制結構實例詳解

php基礎控制結構實例詳解

伊谢尔伦
伊谢尔伦原創
2017-06-23 09:16:141267瀏覽

控制結構

如果我們希望有效地對應使用者的輸入,程式碼就需要具有判斷能力。能夠讓程式進行判斷的結構稱為條件。

1、if..else循環有三種結構
第一種是只有用到if條件,當作單純的判斷。解釋成「若發生了某事則怎樣處理」。語法如下:
if (expr) { statement }
其中的expr為判斷的條件,通常都是用邏輯運算子號當判斷的條件。而statement為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。
範例:本例省略大括號。

<?php 
if ($state==1)echo "哈哈" ; 
?>

這裡特別注意的是,判斷是否相等是==而不是=,ASP程式設計師可能常犯這個錯誤,=是賦值。
範例:本例的執行部分有三行,且不可省略大括號。 

<?php 
if ($state==1) { 
echo "哈哈 ; 
echo "<br>" ; 
} 
?>

第二種是除了if之外,加上了else的條件,可解釋成「若發生了某事則怎樣處理,否則該如何解決」。語法如下:
if (expr) { statement1 } else { statement2 }
範例:上面的範例來修改成更完整的處理。其中的else由於只有一行執行的指令,因此不用加上大括號。 

<?php 
if ($state==1) { 
echo "哈哈" ; 
echo "<br>"; 
} 
else{ 
echo "呵呵"; 
echo "<br>"; 
} 
?>

第三種是遞迴的if..else循環,通常用在多種決策判斷時。它將數個if..else拿來合併運用處理。
直接看下面的例子: 

<?php 
if ( $a > $b ) { 
echo "a 比 b 大" ; 
} elseif ( $a == $b ) { 
echo "a 等于 b" ; 
} else { 
echo "a 比 b 小" ; 
} 
?>

上例只用二層的if..else循環,用來比較a和b兩個變數。實際要使用這種遞歸if..else迴圈時,請小心使用,因為太多層的迴圈容易使設計的邏輯出問題,或少打了大括號等,都會造成程式出現莫名其妙的問題。

2、for迴圈 單純只有一種,沒有變化,它的語法如下:
for (expr1; expr2; expr3) { statement }
其中的expr1為條件的初始值。 expr2為判斷的條件,通常都是用邏輯運算符號(logical operators)當判斷的條件。 expr3為執行statement後要執行的部份,用來改變條件,供下次的循環判斷,如加一..等等。而statement為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。
下例是用for迴圈寫的例子: 

<?php 
for ( $i = 1 ; $i <= 10 ; $i ++) { 
echo "这是第".$i."次循环<br>" ; 
} 
?>

3、switch循環,通常處理複合式的條件判斷,每個子條件,都是case指令部分。在實踐上若使用許多類似的if指令,可以將它綜合成switch循環。
語法如下:
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }
其中的expr條件,通常是變數名稱。而case後的exprN,通常表示變數值。冒號後則為符合該條件要執行的部分。注意要用break跳離循環。 

<?php 
switch ( date ( "D" )) { 
case "Mon" : 
echo "今天星期一" ; 
break; 
case "Tue" : 
echo "今天星期二" ; 
break; 
case "Wed" : 
echo "今天星期三" ; 
break; 
case "Thu" : 
echo "今天星期四" ; 
break; 
case "Fri" : 
echo "今天星期五" ; 
break; 
default: 
echo "今天放假" ; 
break; 
} 
?>

這裡要注意的是break;別遺漏了,default,省略是可以的。
很明顯的,上述的例子用if循環就很麻煩了。當然在設計時,要將出現機率最大的條件放在最前面,最少出現的條件放在最後面,可以增加程式的執行效率。上例由於每天出現的機率相同,所以不用注意條件的順序。

以上是php基礎控制結構實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn