萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP 循環控制語句幾種方法詳解

PHP 循環控制語句幾種方法詳解

在php中循環語句一般是使用while,for,foreach而控制語句就是if swicth這些了,下面我來給大家介紹一下php循環控制語句用法吧。

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為判斷的條件,通常都是用邏輯運算符號(logicaloperators)當判斷的條件。
expr3為執行statement後要執行的部份,用來改變條件,供下次的循環判斷,如加一..等等。
而statement為符合條件的執行部分程序,若程序只有一行,可以省略大括號{}。
下例是用for循環寫的的例子。

 代碼如下 復制代碼 <?php
for($i=1;$i<=10;$i
){
echo"這是第".$i."次循環<br>";
}
?>

3、switch循環,通常處理復合式的條件判斷,每個子條件,都是case指令部分。
在實作上若使用許多類似的if指令,可以將它綜合成switch循環。語法如下

 代碼如下 復制代碼 switch(expr){
caseexpr1:
statement1;
break;
caseexpr2:
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循環控制語句
1、While語句

 代碼如下 復制代碼 While循環是php中最簡單的循環語句,他的語法格式是:
While (expression){
statement;
}

當表達式expression的值為真時,將執行statement語句,執行結束後,再返回到expression表達式繼續進行判斷。直到表達式的值為假時,才跳出循環。
實例:

 代碼如下 復制代碼 <?php
$num = 1;
$str = “10以內的偶數為:”;
while($num <=10){
if($num % 2 == 0){
$str.=$num.”";
}
$num++;
}
echo $str;
?>

2、Do…While語句
While語句還有一種形式的表示,Do…While.語法為:
Do{
statement;
}While(expression);
兩者的區別在於:Do…While語句要比While語句多循環一次。
當While表達式的值為假時,While循環直接跳出當前循環,而Do…While語句則是先執行一遍程序塊,然後再對表達式進行判斷。
3、For語句

 代碼如下 復制代碼 For循環是php中最復雜的循環結構,它的語法格式為:
For(expression1;expression2;expression3){
statement;
}

其中:expression1在第一次循環時無條件取一次值。
expression2在每次循環開始前求值,如果值為真,則執行statement;否則跳出循環,繼續往下執行。expression3為每次循環後被執行。
實例:

 代碼如下 復制代碼 <?php
$num=1;
for($i=1;$i<=100;$i++){
$num *=$i;
}
echo $num;
?>

4、Foreach語句
Foreach循環是php4.0引進來的,只能用於數組。在php5中,又增加了對對象的支持。該語句的語法格式為:
foreach(array_expression as $value)
statement;

Foreach(array_expression as $key => $value)
statement;
Foreach語句將遍歷數組array_expression,每次循環時,將當前數組中的值賦給$value(或是將數組下表賦給$key、對應的數組值賦給$value),同時,數組指針向後移動,如此反復循環,直到遍歷結束。當使用Foreach語句時,數組指針將自動被重置,所以不需要手動設置指針位置。實例

 代碼如下 復制代碼 <?php
$arr=array(“We”,”are”,”the”,”best”,”team”,”!”);
if(is_array($arr) == true){
foreach($arr as $key => $value){
echo $key.”=”.$value.”<br>”;
}
}else{
echo”該變量不是數組,不能使用foreach語句”;
}
?>
copyright © 萬盛學電腦網 all rights reserved