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