В циклах PHP доступны для использования две инструкции, влияющие на их поведение: break
и continue
. Впрочем, на практике они используются редко. Ту же функциональность легко получить и без их использования, но знать про них нужно, особенно при чтении чужого кода.
Инструкция break
производит выход из цикла. Не из функции, а из цикла. То есть, встретив её, интерпретатор перестаёт выполнять текущий цикл и переходит к инструкциям, идущими сразу за циклом.
<?php
$coll = ['one', 'two', 'three', 'four', 'stop', 'five'];
foreach ($coll as $item) {
if ($item === 'stop') {
break;
}
print_r($item);
}
То же самое легко получить, используя цикл while
, который, кстати говоря, семантически лучше подходит для такой задачи, так как он подразумевает не полный перебор.
<?php
$coll = ['one', 'two', 'three', 'four', 'stop', 'five'];
$i = 0;
while ($coll[$i] != 'stop') {
print_r($coll[$i]);
$i++;
}
Инструкция continue
позволяет пропустить итерацию цикла. Ниже пример с функцией myCompact
, которая удаляет null
элементы из массива:
<?php
function myCompact($coll)
{
$result = [];
foreach ($coll as $item) {
if (is_null($item)) {
continue;
}
$result[] = $item;
}
return $result;
}
Код без continue
получается проще:
<?php
function myCompact($coll)
{
$result = [];
foreach ($coll as $item) {
if (!is_null($item)) {
$result[] = $item;
}
}
return $result;
}
Вам ответят команда поддержки Хекслета или другие студенты.
Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.
Загляните в раздел «Обсуждение»:
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт