继续

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 继续外循环并跳过所有其他代码(包括内循环中的条件)。