for語句可以說是PHP(同時也是多種語言)的循環控制部份最基本的一個語句了,for語句的執行規律和基礎用法在這裡就不多說,可以參考PHP手冊for語句部分。 PHP手冊中對它的語法定義如下:
for (expr1; expr2; expr3)
statement
下面說說for語句幾種有用的變型。
1、無限循環
首先是人盡皆知的無限循環(亦可稱「死循環」)。由於空表達式null在語法上是有效的,所以我們可以把for語句的三個表達式留空,這樣就會產生不斷執行for嵌套語句的效果。
for (;;) {
//放置需要不斷執行的語句
}
?>
雖然有一些任務會使用到無限循環,但是大多數程序任務,特別是PHP所能涉及的領域,在使用無限循環時都會加入一些終止循環的條件。
for (;;) {
//如果是公元循環2199年,則跳出循環則跳出
if (date('Y'('Y'('Y'
2199'
) { break; }}
}
}
}} 接下來就是說說在初始化語句expr1中使用null語法,留空expr1最常見的作用就是完成更為複雜的初始化工作。 if (isset(
$i$i
$i$i$i$i
$i$i$i
) {$i); if ((int)
''
) 2008) {= 0
; } else {1; }} else { }} else { 3
;}for (;
$i $i
🎜>
;
$i++) { echo >;}?> ⊥覽恚鶾鍤點編寫更為複雜的迭代式,比如說根據不同的條件呼叫不同的迭代式。 而for語句中的條件語句expr2留空則是上面所說的無限循環,當然也可以添加一些更為複雜的條件去判斷什麼時候跳出循環,在此不在重複。 3、多重迴圈 使用多重迴圈來控制多個變數也是在for語句中使經常被忽略的特性。如下面的例子,在一般的任務中用到的一般會是雙重循環,三重以上的循環一般意義不大。
for ($i = $i = >, $j = 10;$i ;$i 10;$i++,
$j$j
>--) { echo
"$i + $j = 10rn"
;
}
;
}
}
?>
以上程式碼將輸出:
0 + 10 = 10
1 + 9 = 10
2 + 8 = 9 = 102 + 8 = 9 = 10 >4 + 6 = 10
5 + 5 = 106 + 4 = 107 + 3 = + 0 = 104、更複雜的表達式
如果把for語句的三個表達式寫得複雜一些,則可以用於最佳化演算法。甚至可以使用沒有循環體的for語句來完成一些任務。例如計算累加或階乘://計算1-5的累積結果,斌值到$jfor ($i = 1,$j ,$j 0; $i 5
5; $j
+= $i
++);echo ++);echo $j;//計算1-5的階乘結果,斌值到$jfor (for ( $i = 1,$j = $j =
$j = ; $i
5
;
echo $j
;$j