if
no es una estructura de bucle, por lo que no puede "salir de ella".
Sin embargo, puede salir del foreach
simplemente llamando al break
. En su ejemplo que tiene el efecto deseado:
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ($current_device[0] == $device) {
// found a match in the file
$nodeid = $equip->id;
// will leave the foreach loop and also the if statement
break;
}
this_command_is_not_executed_after_a_match_is_found();
}
simplemente para la corrección de otros que tropiezan con esta pregunta en busca de una respuesta ..
break
toma un argumento opcional, que define cuántos estructuras de bucle que debería romperse. Ejemplo:
foreach (array('1','2','3') as $a) {
echo "$a ";
foreach (array('3','2','1') as $b) {
echo "$b ";
if ($a == $b) {
break 2; // this will break both foreach loops
}
}
echo ". "; // never reached
}
echo "!";
resultante de salida:
1 3 2 1!
Si - por alguna oscura razón - que desea break
de una declaración if
(que no, no es una estructura de bucle y por lo tanto frágil por definición), simplemente puede envolver su if
en un bucle pequeño estructura para que pueda saltar de ese bloque de código.
Tenga en cuenta que este es un corte total y normalmente no querría hacer esto:
do if ($foo)
{
// Do something first...
// Shall we continue with this block, or exit now?
if ($abort === true) break;
// Continue doing something...
} while (false);
El ejemplo anterior se ha tomado de un comment in the PHP docs
Si usted se pregunta acerca de la sintaxis: funciona porque aquí se usa una sintaxis abreviada. Las llaves externas se pueden omitir porque la estructura del bucle contiene solo una declaración: if ($foo) { .. }
.
Otro ejemplo para esto:
do $i++; while ($i < 100)
es equivalente a do { $i++; } while ($i < 100)
.
para PHP no js. No puedo suponer que se comporten de la misma manera. –
gee - tengo que dejar de usar tanto jQuery. ¿Por qué esto obtuvo un voto negativo? +1, pregunta perfectamente razonable y bien planteada. – mrtsherman
solo hice la pregunta porque (por alguna razón) no pude entender el documento de ruptura de php y sus ejemplos. todo bien, sin embargo. No estoy aquí para obtener insignias y puntos, solo buenas respuestas. –