У меня есть цикл foreach и оператор if. Если совпадение найдено, мне нужно в конечном итоге вырваться из foreach.
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ( $current_device[0] == $device ) {
// found a match in the file
$nodeid = $equip->id;
<break out of if and foreach here>
}
}
php
if-statement
foreach
break
au_stan
источник
источник
Ответы:
if
не является структурой цикла, поэтому вы не можете «вырваться из нее».Вы можете, однако, вырваться,
foreach
просто позвонивbreak
. В вашем примере это имеет желаемый эффект:Просто для полноты для тех, кто наткнулся на этот вопрос в поисках ответа ..
break
принимает необязательный аргумент, который определяет, сколько структур цикла он должен разорвать. Пример:Результирующий вывод:
источник
switch($a) { case 'x': switch($b) { case 'x': break 2; }; break; }
бы внутренниеbreak 2
листы обоих операторов switch.Просто используйте
break
. Это сделает это.источник
if ($abort_if_block) break;
я первоначально сделал,break 2
и оно провалилось. спасибоБолее безопасный способ приблизиться к разрыву цикла
foreach
илиwhile
в PHP - это вложить инкрементную переменную-счетчик иif
условно в исходный цикл. Это дает вам более жесткий контроль, чем тот,break;
который может вызвать хаос в других местах на сложной странице.Пример:
источник
endwhile
утверждение, вам нужно написатьwhile (..): ...; endwhile;
- запишите здесь двоеточиеwhile
!Для тех, кто приземляется здесь, но ищет, как выйти из цикла, содержащего оператор включения, используйте return вместо break или continue.
Если вы хотите прерваться, находясь внутри do_this_for_even.php, вам нужно использовать return. Использование break или continue вернет эту ошибку: Невозможно прервать / продолжить 1 уровень. Я нашел больше деталей здесь
источник