array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'control-structures.continue.php', 1 => 'continue', ), 'up' => array ( 0 => 'language.control-structures.php', 1 => 'Управляющие конструкции', ), 'prev' => array ( 0 => 'control-structures.break.php', 1 => 'break', ), 'next' => array ( 0 => 'control-structures.switch.php', 1 => 'switch', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'language/control-structures/continue.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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 .
|