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