continue
Ключевое слово continue в PHP немедленно переходит к следующей итерации цикла при выполнении заданного условия. Синтаксис и примеры.
Ключевое слово PHP continue: полное руководство
Как PHP-разработчик, вы наверняка использовали циклы для перебора массивов или выполнения других задач. Ключевое слово continue — это управляющая конструкция в PHP, которая немедленно переходит к следующей итерации при выполнении указанного условия. В этой статье мы подробно рассмотрим синтаксис и применение ключевого слова continue, а также приведём множество примеров, которые помогут вам освоить эту важную возможность PHP.
Синтаксис
Ключевое слово continue используется для пропуска текущей итерации и перехода к следующей в PHP. Вот базовый синтаксис использования continue в PHP:
Синтаксис PHP continue
continue;В этом примере ключевое слово continue пропускает текущую итерацию и переходит к следующей.
Примеры
Рассмотрим несколько практических примеров использования ключевого слова continue:
Примеры PHP continue
<?php
// Example 1
for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
continue;
}
echo $i . PHP_EOL;
}
// Output: 0 1 2 3 4 6 7 8 9
// Example 2
$myArray = ["apple", "banana", "cherry", "date"];
foreach ($myArray as $value) {
if ($value == "cherry") {
continue;
}
echo $value . PHP_EOL;
}
// Output: apple banana dateВ этих примерах ключевое слово continue пропускает определённые итерации при выполнении условия.
Расширенное применение и сравнение
Пропуск вложенных циклов
По умолчанию continue влияет только на самый внутренний цикл. Чтобы пропустить итерации внешнего цикла, передайте необязательный числовой аргумент, указывающий PHP, к скольким уровням вложенных циклов применить continue:
<?php
for ($i = 1; $i <= 3; $i++) {
for ($j = 1; $j <= 3; $j++) {
if ($j == 2) {
continue 2; // skip to the next iteration of the OUTER loop
}
echo "i=$i, j=$j" . PHP_EOL;
}
}
// Output:
// i=1, j=1
// i=2, j=1
// i=3, j=1Поскольку continue 2 переходит к следующей итерации внешнего цикла, внутренний цикл никогда не достигает $j == 3. Обычный continue (или continue 1) пропустил бы только текущую итерацию внутреннего цикла, и внутренний цикл всё равно вывел бы j=3.
continue vs break
Начинающие разработчики нередко путают эти две управляющие конструкции. В то время как continue пропускает текущую итерацию и переходит к следующей, break немедленно завершает весь цикл. Используйте continue для фильтрации элементов внутри цикла, а break — для досрочного выхода, когда нужный результат получен.
<?php
foreach ([1, 2, 3, 4, 5] as $n) {
if ($n == 3) {
continue; // skip 3, keep looping
}
echo $n . PHP_EOL;
}
// Output: 1 2 4 5
foreach ([1, 2, 3, 4, 5] as $n) {
if ($n == 3) {
break; // stop the loop at 3
}
echo $n . PHP_EOL;
}
// Output: 1 2Распространённая ловушка: continue внутри switch
Внутри оператора switch ключевое слово continue ведёт себя как break и лишь завершает switch. PHP даже выводит предупреждение. Если вы находитесь внутри цикла и оператора switch и хотите пропустить итерацию цикла, используйте continue 2:
<?php
foreach (["save", "skip", "delete"] as $action) {
switch ($action) {
case "skip":
continue 2; // skip this loop iteration, not just the switch
default:
echo "Handling: $action" . PHP_EOL;
}
}
// Output:
// Handling: save
// Handling: deleteПреимущества
Использование ключевого слова continue даёт ряд преимуществ, в том числе:
- Повышение эффективности кода: оно позволяет пропускать ненужные итерации, благодаря чему код работает быстрее.
- Упрощение логики: оно позволяет обрабатывать условную фильтрацию прямо внутри цикла, сокращая необходимость в сложных вложенных блоках
if-else.
Заключение
Итак, ключевое слово continue — мощный инструмент для PHP-разработчиков, позволяющий пропускать определённые итерации цикла и повышать эффективность и читаемость кода. Помните, что оно работает в любом типе цикла — for, foreach, while и do...while — и что необязательный аргумент уровня (continue 2) позволяет воздействовать на вложенные циклы.
Связанные темы
- Обзор циклов PHP — как устроены все циклические конструкции PHP.
- PHP
break— аналог, полностью завершающий цикл. breakиcontinueвместе — управление ходом цикла бок о бок.