PHP 迴圈控制語句幾種方法詳解_PHP教程

來源:互聯網
上載者:User
在php中迴圈語句一般是使用while,for,foreach而控制語句就是if swicth這些了,下面我來給大家介紹一下php迴圈控制語句用法吧。

1、if..else迴圈有三種結構第一種是只有用到if條件,當作單純的判斷。

解釋成"若發生了某事則怎樣處理"。
文法如下:if(expr){statement}其中的expr為判斷的條件,通常都是用邏輯運算子號當判斷的條件。
而statement為合格執行部分程式,若程式只有一行,可以省略大括弧{}。
範例:本例省略大括弧。

代碼如下 複製代碼
if($state==1)
echo"哈哈";
?>

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

代碼如下 複製代碼
if($state==1){
echo"哈哈;
echo"
";
}
?>

第兩種是除了if之外,加上了else的條件,可解釋成"若發生了某事則怎樣處理,否則該如何解決"。
文法如下:

代碼如下 複製代碼
if(expr){
statement1
}else{
statement2
}

範例:上面的例子來修改成更完整的處理。
其中的else由於只有一行執行的指令,因此不用加上大括弧。

代碼如下 複製代碼
if($state==1){
echo"哈哈";
echo"
";
}else{
echo"呵呵";
echo"
";
}
?>

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

代碼如下 複製代碼
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迴圈寫的的例子。

代碼如下 複製代碼
for($i=1;$i<=10;$i
){
echo"這是第".$i."次迴圈
";
}
?>

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

代碼如下 複製代碼
switch(expr){
caseexpr1:
statement1;
break;
caseexpr2:
statement2;
break;
default:
statementN;
break;
}

其中的expr條件,通常為變數名稱。
而case後的exprN,通常表示變數值。
冒號後則為符合該條件要執行的部分。
注意要用break跳離迴圈。

代碼如下 複製代碼
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運算式繼續進行判斷。直到運算式的值為假時,才跳出迴圈。
執行個體:

代碼如下 複製代碼
$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為每次迴圈後被執行。
執行個體:

代碼如下 複製代碼
$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語句時,數組指標將自動被重設,所以不需要手動設定指標位置。執行個體

代碼如下 複製代碼
$arr=array(“We”,”are”,”the”,”best”,”team”,”!”);
if(is_array($arr) == true){
foreach($arr as $key => $value){
echo $key.”=”.$value.”
”;
}
}else{
echo”該變數不是數組,不能使用foreach語句”;
}
?>

http://www.bkjia.com/PHPjc/632683.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632683.htmlTechArticle在php中迴圈語句一般是使用while,for,foreach而控制語句就是if swicth這些了,下面我來給大家介紹一下php迴圈控制語句用法吧。 1、if..else迴圈有...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.