Операторы break и continue в PHP
Очень часто при работе с циклами требуется пропустить одну итерацию и перейти к следующей. Не менее часто возникает необходимость и вовсе нужно прервать цикл ещё до того, как он должен был завершиться. Для этого используются специальные операторы PHP – continue
(переход к следующей итерации) и break
(остановка цикла).
Оператор break
завершает цикл полностью, continue
просто сокращает текущую итерацию и переходит к следующей итерации:
while ($foo) { <--------------------┐ continue; --- возвращаемся сюда --┘ break; ----- покидаем цикл ----┐ } | <--------------------┘
Прерывание цикла - break
Для примера напишем простейший цикл, внутри которого мы будем выяснять, есть ли искомое число в массиве, или нет:
Пример
Попробуй сам »<?php
$array = [5, 9, 6, 7, 33, 2, 48, 7, 18, 17];
$number = 7;
$isNumberFound = false;
foreach ($array as $value) {
echo 'Сравниваем с числом значение ' . $value . '<br>';
if ($item === $number) {
$isNumberFound = true;
}
}
echo $isNumberFound ? 'Число найдено' : 'Число не найдено';
?>
Результат выполнения кода:
Перед циклом мы инициализировали переменную $isNumberFound
, назначение которой — хранить информацию о том, найдена ли искомая цифра в массиве или нет. Изначально приравниваем её к false
.
В цикле идём по массиву и сравниваем каждый его элемент $value
с числом. Когда совпадение найдено значение переменной $isNumberFound
станет равной true
и мы уже знаем, что искомая цифра в массиве есть.
Из примера видно, что все элементы массива сравнивались с искомой цифрой. А что если мы хотим найти цифру 7 и на этом завершить работу цикла? Для этого используем оператор break
:
Пример
Попробуй сам »<?php
$array = [5, 9, 6, 7, 33, 2, 48, 7, 18, 17];
$number = 7;
$isNumberFound = false;
foreach ($array as $value) {
echo 'Сравниваем с числом значение ' . $value . '<br>';
if ($item === $number) {
$isNumberFound = true;
break;
}
}
echo $isNumberFound ? 'Число найдено' : 'Число не найдено';
?>
Результат выполнения кода:
В примере мы останавливаем работу цикла, как только искомая цифра 7 найдена. При этом сценарий завершился с гораздо меньшим числом итераций.
Прерывание итерации - continue
Оператор continue
предназначен для остановки обработки текущего блока кода в теле цикла и перехода к следующей итерации. В отличие от break
он не прерывает работу цикла, а всего лишь выполняет переход к следующей итерации.
В следующем примере пропускается значение 3 цикла for:
Пример
Попробуй сам »<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 3) {
continue;
}
echo "Число: $x <br>";
}
?>
Результат выполнения кода:
Операторы break
и continue
применяются в циклах for, foreach, while, do-while или switch