Когда я обычно хочу выйти из цикла foreach до завершения всех итераций, я просто использую разрыв;заявление.например,
foreach($nodelist as $node) {
if($metCriteria) {
break;
}
}
Но в моем следующем примере есть оператор switch.И если выполнено одно из условий, мне нужно выйти из цикла 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;
}
Это лучшее решение?или это там по-другому?