continue

(PHP 4, PHP 5, PHP 7, PHP 8)

continue используется внутри циклических структур для пропуска оставшейся части текущей итерации цикла и, при соблюдении условий, начала следующей итерации.

Замечание: В PHP оператор switch считается циклическим и внутри него может использоваться continue. Если continue не передано аргументов, то он ведёт себя аналогично break, но выдаёт предупреждение о возможной ошибке. Если switch расположен внутри цикла, continue 2 продолжит выполнение внешнего цикла со следующей итерации.

continue принимает необязательный числовой аргумент, который указывает на скольких уровнях вложенных циклов будет пропущена оставшаяся часть итерации. Значением по умолчанию является 1, при которой пропускается оставшаяся часть текущего цикла.

<?php
$arr
= ['ноль', 'один', 'два', 'три', 'четыре', 'пять', 'шесть'];
foreach (
$arr as $key => $value) {
if (
0 === ($key % 2)) { // пропуск чётных чисел
continue;
}
echo
$value . "\n";
}
?>

Результат выполнения приведённых примеров:

один
три
пять
<?php
$i
= 0;
while (
$i++ < 5) {
echo
"Внешний\n";
while (
1) {
echo
"Средний\n";
while (
1) {
echo
"Внутренний\n";
continue
3;
}
echo
"Это никогда не выведется.\n";
}
echo
"Это также не выведется.\n";
}
?>

Результат выполнения приведённых примеров:

Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний

Пропуск точки запятой после continue может привести к путанице. Пример как не надо делать.

<?php
for ($i = 0; $i < 5; ++$i) {
if (
$i == 2)
continue
print
"$i\n";
}
?>

Ожидается, что результат будет такой:

0
1
3
4

Изменения, касающиеся оператора continue
Версия Описание
7.3.0 continue внутри switch, использующееся как замена break для switch будет вызывать ошибку уровня E_WARNING.