w3schools values switch rangos multiple con php switch-statement break for-loop

values - switch php rangos



Break out forloop pero dentro de la declaración switch php (4)

Cuando normalmente quiero salir de un bucle foreach antes de que todas las iteraciones se hayan completado, simplemente uso un descanso; declaración. p.ej

foreach($nodelist as $node) { if($metCriteria) { break; } }

Pero mi próximo ejemplo tiene una declaración de cambio. Y si se cumple una de las condiciones, entonces necesito romper con el ciclo foreach. (El problema es que la ruptura se usa para la declaración de cambio)

foreach($nodelist as $node) { switch($node->nodeName) { case "a" : //do something break; case "b" : //break out of forloop break; } }

¿Simplemente configuro una variable en la instrucción switch y luego la rompo? p.ej

$breakout = false; foreach($nodelist as $node) { switch($node->nodeName) { case "a" : //do something break; case "b" : $breakout = true; break; } if($breakout === true) break; }

¿Es esta la mejor solución? o esto de otra manera?


La respuesta aceptada no tiene un ejemplo práctico, déjame compartir contigo.

break 2

significa salir de ambos, lazo e interruptor.

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


Simplemente use el {''s - evitará que el código "se ejecute". Mucho mejor que la declaración de interrupción si me preguntas.


del manual ( break )

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


descanso 2;

descanso x saldrá de esos muchos niveles