通常、すべての反復が完了する前に foreach ループから抜け出したい場合は、単純にブレークを使用します。声明。例えば
foreach($nodelist as $node) {
if($metCriteria) {
break;
}
}
しかし、次の例には switch ステートメントが含まれています。条件の 1 つが満たされた場合は、foreach ループから抜け出す必要があります。(問題は、ブレークがswitchステートメントに使用されていることです)
foreach($nodelist as $node)
{
switch($node->nodeName) {
case "a" :
//do something
break;
case "b" :
//break out of forloop
break;
}
}
switch ステートメントで変数を設定し、その後で中断するだけですか? 例えば
$breakout = false;
foreach($nodelist as $node)
{
switch($node->nodeName) {
case "a" :
//do something
break;
case "b" :
$breakout = true;
break;
}
if($breakout === true) break;
}
これが最善の解決策ですか?またはこれは別の方法がありますか?