$array = array(1,2,3);
foreach ($array as $item){
if ($item == 2) {
break;
}
echo $item;
}
выводит «1», потому что цикл был прерван навсегда, до того как эхо смогло напечатать «2».
$array = array(1,2,3);
foreach ($array as $item){
if ($item == 2) {
continue;
}
echo $item;
}
выводит 13
, потому что вторая итерация прошла пройдено
$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
foreach ($letters as $char){
if ($char == "C") {
break 2; // if this was break, o/p will be AB1AB2AB3
}
echo $char;
}
echo $num;
}
выводит AB
из-за break 2
, что означает, что оба утверждения были нарушены довольно рано. Если бы это было просто break
, результат был бы AB1AB2AB3
.
$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
foreach ($letters as $char){
if ($char == "C") {
continue 2;
}
echo $char;
}
echo $num;
}
выведет ABABAB
, из-за continue 2
: внешний цикл будет проходить каждый раз.
Другими словами, continue
останавливает текущее выполнение итерации, но позволяет другому запускаться, в то время как break
полностью останавливает весь оператор.
Таким образом, мы можем сказать, что continue
применимо только для циклов, тогда как break
может использоваться в других операторах, таких как switch
.
Число представляет собой число вложенных затронутых операторов.
если есть 2 вложенных цикла, break
во внутреннем будет нарушать внутренний (однако это имеет очень мало смысла, так как внутренний цикл будет запущен снова в следующей итерации внешнего цикла). break 2
во внутреннем цикле прервет оба.