Tengo un bucle foreach y una declaración if. Si se encuentra una coincidencia, finalmente necesito salir del foreach.
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ( $current_device[0] == $device ) {
// found a match in the file
$nodeid = $equip->id;
<break out of if and foreach here>
}
}
php
if-statement
foreach
break
au_stan
fuente
fuente
Respuestas:
if
no es una estructura de bucle, por lo que no puede "salir de ella".Sin embargo, puede salir del
foreach
teléfono simplemente llamandobreak
. En su ejemplo tiene el efecto deseado:Solo para completar para otros que se topan con esta pregunta en busca de una respuesta.
break
toma un argumento opcional, que define cuántas estructuras de bucle debe romper. Ejemplo:Resultado resultante:
fuente
switch($a) { case 'x': switch($b) { case 'x': break 2; }; break; }
lasbreak 2
hojas internas de ambas declaraciones de cambio.Simplemente use
break
. Eso lo hará.fuente
if ($abort_if_block) break;
había establecido originalmentebreak 2
y falló. graciasUna forma más segura de abordar la ruptura de un bucle
foreach
owhile
en PHP es anidar una variable de contador incremental yif
condicional dentro del bucle original. Esto le brinda un control más estricto que elbreak;
que puede causar estragos en otras partes de una página complicada.Ejemplo:
fuente
endwhile
declaración, debe escribirwhile (..): ...; endwhile;
: tenga en cuenta los dos puntos aquí despuéswhile
.Para aquellos de ustedes que aterrizan aquí pero buscan cómo salir de un ciclo que contiene una declaración de inclusión, use return en lugar de break o continue.
Si quieres romper cuando estás dentro de do_this_for_even.php necesitas usar return. El uso de romper o continuar devolverá este error: no se puede romper / continuar 1 nivel. Encontré más detalles aquí
fuente