(PHP 4, PHP 5, PHP 7, PHP 8)
continue
は、ループ構造において現在の繰り返しループ の残りの処理をスキップし、条件式を評価した後に 次の繰り返しの最初から実行を続けるために使用されます、
注意: PHP では、
continue
の動作に関しては switch 文がループ構造とみなされます。continue
に引数を渡さなかった場合の動きはbreak
と同じですが、間違いの元なので警告が生成されます。switch
がループ内にある場合、continue 2
とすると、外側のループの次回の処理から続行します。
continue
では、オプションの引数で 処理をスキップするループ構造のレベルの数を指定できます。 デフォルト値は 1
で、 これは現在のループの終了地点までスキップします。
<?php
$arr = ['zero', 'one', 'two', 'three', 'four', 'five', 'six'];
foreach ($arr as $key => $value) {
if (0 === ($key % 2)) { // キーが偶数の組をスキップします
continue;
}
echo $value . "\n";
}
?>
上の例の出力は以下となります。
one three five
<?php
$i = 0;
while ($i++ < 5) {
echo "Outer\n";
while (1) {
echo "Middle\n";
while (1) {
echo "Inner\n";
continue 3;
}
echo "This never gets output.\n";
}
echo "Neither does this.\n";
}
?>
上の例の出力は以下となります。
Outer Middle Inner Outer Middle Inner Outer Middle Inner Outer Middle Inner Outer Middle Inner
continue
の後のセミコロンを省略すると混乱を生じることがあります。 以下の例のようなことをしてはいけません。
<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>
これは、以下のような結果になることを期待していたのでしょう。
0 1 3 4
バージョン | 説明 |
---|---|
7.3.0 | switch 内部で break 文のように振る舞おうとする continue については、E_WARNING が発生するようになりました。 |