繼續

continue 關鍵字會暫停迴圈的當前迭代,但不會終止迴圈。

就像 break 語句一樣,continue 語句位於迴圈體內。執行時,continue 語句會導致執行立即跳轉到迴圈條件。

在以下示例中,迴圈根據陣列中的值列印出訊息,但跳過指定的值。

$list = ['apple', 'banana', 'cherry'];

foreach ($list as $value) {
    if ($value == 'banana') {
        continue;
    }
    echo "I love to eat {$value} pie.".PHP_EOL;
}

預期的輸出是:

I love to eat apple pie.
I love to eat cherry pie.

continue 語句還可以用於通過指定要跳轉的迴圈級別的數量來立即繼續執行到迴圈的外部級別。例如,考慮諸如的資料

水果 顏色 成本
蘋果 紅色 1
香蕉 黃色 7
櫻桃 紅色 2
葡萄 綠色 4

只用水果製成餡餅,價格低於 5

$data = [
    [ "Fruit" => "Apple",  "Color" => "Red",    "Cost" => 1 ],
    [ "Fruit" => "Banana", "Color" => "Yellow", "Cost" => 7 ],
    [ "Fruit" => "Cherry", "Color" => "Red",    "Cost" => 2 ],
    [ "Fruit" => "Grape",  "Color" => "Green",  "Cost" => 4 ]
];

foreach($data as $fruit) {
    foreach($fruit as $key => $value) {
        if ($key == "Cost" && $value >= 5) {
            continue 2;
        }
        /* make a pie */
    }
}

當執行 continue 2 語句時,執行會立即跳回到 $data as $fruit 繼續外迴圈並跳過所有其他程式碼(包括內迴圈中的條件)。