Forum und email

for 迴圈

for 迴圈 可說是 PHP 中最複雜的迴圈類。它們的用法和在 C 中的用法並沒有分別:

for (expr1; expr2; expr3) statement
     

首先第一個表達式 (expr1) 無論如何都會演算一次

然後在每個循環開始前 expr2 都會被算出來, 如果得出結果成立的話, 迴圈中的指令便被執行, 如果 expr2 不成立的話, 便會跳出迴圈。

每一個循環完成之後電腦會演算一次 expr3。

三個表達式中任何一個都可以是空的。 expr2 空的話代表迴圈會無止境地執行下去。 (PHP 和 C 一樣, 自動把空的表達式當成是成立的) 這聽上去很無聊, 但實際上你可能想在迴圈中用 break 的方式來結束。

以下每一個例子都會顯示 1 到 10:

/* example 1 */
 
for ($i = 1; $i <= 10; $i++) {
    print $i;
}
 
/* example 2 */
 
for ($i = 1;;$i++) {
    if ($i > 10) {
        break;
    }
    print $i;
}
 
/* example 3 */
 
$i = 1;
for (;;) {
    if ($i > 10) {
        break;
    }
    print $i;
    $i++;
}
 
/* example 4 */
 
for ($i = 1; $i <= 10; print $i, $i++) ;

當然, 在上面的示範中看起來只有第一個 (也許也人喜愛第四個例子) 最正規, 有不過有時候在 for 迴圈 用空的表達式可以令編寫程式變很方便。

for 迴圈 也有它的另一種寫法。

for (expr1; expr2; expr3): statement; ...; endfor;
     

有的程式語言有個叫 foreach 的命令來存取陣列和拼雜資料表。 PHP3 沒有這樣指令但 PHP4 有。 (請看 foreach)。用 PHP3 時,你要同時用 whilelist() 以及 each() 函數才能完成相同的工作。 想知道怎麼做的話請看有關這些函數的章節。