От PHP.net:continue:
продолжают принимает необязательный числовой аргумент, который говорит ему, сколько уровней вмещающих петель следует пропустить до конца. Значение по умолчанию равно 1, поэтому пропускается до конца текущего цикла.
От PHP.net:switch
Если у вас есть переключатель внутри цикла и хотите перейти к следующему итерации внешнего цикла, использование по-прежнему 2.
PHP продолжает выполнять инструкции до конца коммутатора блока или в первый раз он видит заявление о нарушении. Если вы не напишите оператор break в конце списка операторов case, PHP отправится при выполнении инструкций следующего случая.
Пояснение:continue 2
переходит к следующей итерации цикла на 2 уровнях задней части, которая является foreach
. break
(эквивалент break 1
) заканчивает токовый контур, который является switch
.
В английском: Для каждого $element
, если тип «а» и condition1
удовлетворяется или, если тип «б» и condition2
соблюдено, перейдите к следующему $element
и игнорировать остальные параметры коммутатора , В противном случае перейдите к следующему переключателю или, если это последний параметр переключателя, выполните любой код после коммутатора.
Here's a demonstration.
К сожалению, viper-7.com, кажется вниз на некоторое время.
Спасибо за ваш любезный ответ. Таким образом, вы имеете в виду, что если тип «a» и условие 1 выполняется, или если тип «b» и условие2 выполняется, оставшийся код в цикле, который вне оператора switch не будет выполнен, и перейдет к следующей итерации в петля, правильно? –
Да, это так. 'continue 2' переходит непосредственно к следующей итерации цикла foreach, не выполняя никакого кода после' switch'. [Вот демонстрация.] (Http://viper-7.com/4SkL9L) – showdev
Получите это. Спасибо за любезное объяснение. –