PHPが初めてで、以下のコードをオンラインで見ました。continue 2
とbreak
を一緒にswitch/case
ステートメント。どういう意味ですか?
foreach ( $elements as &$element ) {
switch ($element['type']) {
case a :
if (condition1)
continue 2;
break;
case b :
if (condition2)
continue 2;
break;
}
// remaining code here, inside loop but outside switch statement
}
continue 2
は、2レベル前の構造の次の反復(foreach
)に直接スキップします。 break
(break 1
と同等)は、switch
ステートメントを終了するだけです。
示したコードの動作は次のとおりです。
$elements
をループします。 $element
がタイプ "a"でcondition1
が満たされている場合、またはタイプ "b"でcondition2
が満たされている場合は、次の$element
にスキップします。それ以外の場合は、次の$element
に移動する前に何らかのアクションを実行します。
PHP.net:continue から:
continueは、オプションの数値引数を受け入れ、最後までスキップするループのレベル数を指定します。デフォルト値は1であるため、現在のループの終わりまでスキップします。
PHPは、switchブロックの最後まで、またはbreakステートメントが最初に検出されるまで、ステートメントを実行し続けます。
ループ内にスイッチがあり、外側のループの次の反復に継続したい場合は、continue 2を使用します。
continueは、オプションの数値引数を受け入れます。これは、最後までスキップするループのレベル数を指示します。デフォルト値は1であるため、現在のループの終わりまでスキップします。
ソース: http://php.net/manual/en/control-structures.continue.php
continueとbreakは、何かが起こるのを止めるという点で似ています。
続行の場合、中括弧の後は停止しますが、ループは停止しません。 switchステートメントは、このステートメントから抜け出し、次のステートメントに進みます。
ブレークの場合、ループ全体の継続を停止し、そこでループを終了します。