(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
Версия | Описание |
---|---|
7.3.0 |
continue внутри switch ,
использующееся как замена break
для switch будет вызывать ошибку
уровня E_WARNING .
|