У меня есть цикл, который выполняет некоторую проверку ошибок в моем PHP-коде. Изначально это выглядело примерно так ...
foreach($results as $result) {
if (!$condition) {
$halt = true;
ErrorHandler::addErrorToStack('Unexpected result.');
}
doSomething();
}
if (!$halt) {
// do what I want cos I know there was no error
}
Это все работает хорошо, но все еще проходит, несмотря на то, что после одной ошибки в этом нет необходимости. Есть ли способ выйти из цикла?
Как указано в других сообщениях, вы можете использовать ключевое слово break. Одна вещь, на которую намекали, но не объясняли, - это то, что ключевое слово может принимать числовое значение, чтобы сообщить PHP, из скольких уровней нужно выйти.
Например, если у вас есть три вложенных друг в друга цикла foreach, пытающихся найти часть информации, вы можете выполнить команду «break 3», чтобы выйти из всех трех вложенных циклов. Это будет работать для структур «for», «foreach», «while», «do-while» или «switch».
источник
break;
оставляет вашу петлю.continue;
пропускает любой код для оставшейся части этого цикла и переходит к следующему циклу, пока условие остается истинным.источник
Вы можете использовать ключевое слово break .
источник
Все это хорошие ответы, но я хотел бы предложить еще один, который, как мне кажется, является лучшим стандартом кода. Вы можете использовать флаг в условии цикла, который указывает, следует ли продолжать цикл и избегать использования
break
всех вместе.Я считаю, что это лучшая практика кода, потому что она не зависит от
break
используемой области. Скорее, вы определяете переменную, которая указывает, следует ли прерывать конкретный цикл. Это полезно, когда у вас много циклов, которые могут быть или не быть вложенными или последовательными.источник
источник