W3docs

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) позволяет воздействовать на вложенные циклы.

Связанные темы

Практика

Практика
Какова цель оператора 'continue' в PHP?
Какова цель оператора 'continue' в PHP?
Was this page helpful?