無料CGI、PHPサイト(確認画面付きメールフォーム・メーリングリスト・メルマガ設置、逆アクセスランキング、画像カウンター等)PHPマニュアル by k-sky

continue

continueは、ループ構造において現在の繰り返しループ の残りの処理をスキップし、条件式を評価した後に 次の繰り返しの最初から実行を続けるために使用されます、

注意: switch 命令はループ構造におけるcontinueの効果 を考慮してつくられていることに留意してください。

continueでは、オプションの引数で 処理をスキップするループ構造のレベルの数を指定できます。

while (list($key,$value) = each ($arr)) {
    if (!($key % 2)) { // キーが偶数の組をスキップ
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Outer<br />\n";
    while (1) {
        echo "&nbsp;&nbsp;Middle<br />\n";
        while (1) {
             echo "&nbsp;&nbsp;Inner<br />\n";
             continue 3;
        }
        echo "This never gets output.<br />\n";
    }
    echo "Neither does this.<br />\n";
}

continue の後のセミコロンを省略すると混乱を生じる ことがあります。以下にすべきでないことの例を示します。

<?php
  
for ($i 0$i 5; ++$i) {
      if (
$i == 2)
          continue
      print 
"$i\n";
  }
?>

これは、以下のような結果になることを期待していたのでしょう。

0
1
3
4

しかし、このスクリプトの出力は以下のようになります。

2

これは、print()コールの返り値が int(1) であり、前記のオプションの数値引数のように 見えてしまうためです。