cancel php loops breakpoints break continue

cancel - ¿Qué significa un número después de "romper" o "continuar" en PHP?



php foreach break (4)

El número solo dice "cuántos ámbitos saltar de"

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

$ i y $ j serán 0

Para citar el manual:

continue acepta un argumento numérico opcional que le indica cuántos niveles de bucles de delimitación deben omitirse hasta el final.

lo mismo vale para el descanso.

¿Podría alguien explicar, por ejemplo, qué se entiende por break 2 bucle break 2 o continue 2 en PHP? ¿Qué significa cuando break o continue es seguido por un número?


romper: romper el bucle más interno (salir del bucle)

break 2: rompe los 2 bucles de nivel de anidamiento (sale de los 2 bucles anidados)

continuar: forzar ciclo para la siguiente iteración desde donde se usa sin ejecutar el resto del código de bucle

continuar 2: forzar bucle para la siguiente 2 iteraciones desde donde se usa sin ejecutar el resto del código de bucle

salir del bucle cuando nos encontremos con $array value para ser 5

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

romper (n)

Salga de ambos bucles cuando encontremos el valor 5 en $ array;

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

continuar

Imprimirá el mensaje cuando el valor sea 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''; }

}


break acepta un argumento numérico opcional que le dice de cuántas estructuras de alojamiento anidadas se deben separar .

<?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; } } ?>

Más ejemplos de ruptura

continue acepta un argumento numérico opcional que le indica cuántos niveles de bucles de delimitación deben omitirse hasta el final. El valor predeterminado es 1, omitiendo así el final del ciclo actual.

<?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"; } ?>

Más ejemplos de continuar


$array = array(1,2,3); foreach ($array as $item){ if ($item == 2) { break; } echo $item; }

emite "1" porque el bucle se rompió para siempre, antes de que echo pudiera imprimir "2".

$array = array(1,2,3); foreach ($array as $item){ if ($item == 2) { continue; } echo $item; }

salidas 13 porque se pasó la segunda iteración

$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; }

da como resultado AB debido a la break 2 , lo que significa que ambas declaraciones se rompieron bastante temprano. Si esto fuera solo una break , la salida habría sido 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; }

dará salida a ABABAB , debido a continue 2 : el ciclo externo se pasará cada vez.

En otras palabras, continue detiene la ejecución de la iteración actual pero permite que otra se ejecute, mientras que el break detiene por completo la instrucción.
Por lo tanto, podemos continue que es aplicable únicamente para los bucles, mientras que el break se puede usar en otras declaraciones, como el switch .

Un número representa el número de declaraciones anidadas afectadas.
si hay 2 bucles anidados, la break en el interior romperá el interno (sin embargo, tiene muy poco sentido ya que el bucle interno se lanzará nuevamente en la siguiente iteración del bucle externo). break 2 en el lazo interno romperá ambos.