Что означает число после «break» или «continue» в PHP?

Может ли кто-нибудь объяснить, с примерами, что подразумевается под break 2 цикла break 2 или continue 2 в PHP? Что это означает, что после break или continue следует число?

     $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 что continue применимо только для петель, тогда как break может использоваться в других операторах, таких как switch .

    Число представляет количество затронутых вложенных операторов.
    если есть 2 вложенных цикла, break во внутреннем сломает внутреннюю (однако это имеет мало смысла, поскольку внутренний цикл будет запущен снова в следующей итерации внешнего цикла). break 2 во внутреннем цикле сломает оба.

    Число просто говорит «сколько областей выпрыгнуть из»

     <?php for($i = 0; $i < 10; ++$i) { for($j = 0; $j < 10; ++$j) { break 2; } } 

    $ i и $ j будут равны 0

    Чтобы процитировать руководство:

    continue принимает необязательный числовой аргумент, который сообщает ему, сколько уровней замкнутых циклов он должен пропустить до конца.

    то же самое касается разрыва.

    break принимает необязательный числовой аргумент, который сообщает ему, сколько из вложенных структур размещения должно быть разбито.

     <?php $arr = array('one', 'two', 'three', 'four', 'stop', 'five'); while (list(, $val) = each($arr)) { if ($val == 'stop') { break; /* You could also write 'break 1;' here. */ } echo "$val<br />\n"; } /* Using the optional argument. */ $i = 0; while (++$i) { switch ($i) { case 5: echo "At 5<br />\n"; break 1; /* Exit only the switch. */ case 10: echo "At 10; quitting<br />\n"; break 2; /* Exit the switch and the while. */ default: break; } } ?> 

    Дополнительные примеры перерыва

    continue принимает необязательный числовой аргумент, который сообщает ему, сколько уровней замкнутых циклов он должен пропустить до конца. Значение по умолчанию равно 1, таким образом пропуская до конца текущего цикла.

     <?php while (list($key, $value) = each($arr)) { if (!($key % 2)) { // skip odd members continue; } do_something_odd($value); } $i = 0; while ($i++ < 5) { echo "Outer<br />\n"; while (1) { echo "Middle<br />\n"; while (1) { echo "Inner<br />\n"; continue 3; } echo "This never gets output.<br />\n"; } echo "Neither does this.<br />\n"; } ?> 

    Дополнительные примеры продолжения

    break: разбить внутреннюю петлю (выход из цикла)

    break 2: разбить 2 петли уровня вложенности (выход из 2 вложенных циклов)

    continue: принудительная петля для следующей итерации с того места, где она используется, без выполнения кода останова цикла

    continue 2: принудительный цикл для следующих 2-х итераций с того места, где он используется, без выполнения кода останова цикла

    выйдите из цикла, когда мы встретим значение $array равное 5

      break $array(4,5,8); for ($i=0 ;$i < 10 $i ++) { if ($array[$i]==5) { break; } } 

    break (n)

    Выйдите из обоих циклов, когда мы встретим значение 5 в массиве $;

     for ($i=0 ;$i < 10 $i ++) { for($j=0; $j <10; $j++) { if ($array[$i][$j]==5) { break 2; } } } 

    Продолжать

    Распечатает сообщение, когда значение равно 5;

     for($i=0; $i<10; $i++) { if ($array[$i] != 5) { continue;// will reach at the first line from here which is for($i=0;..... } echo 'This is five'; } 

    }