if
n'est pas une structure en boucle, vous ne pouvez donc pas en sortir.
Vous pouvez, cependant, sortir de la foreach
en appelant simplement break
. Dans votre exemple, il a l'effet désiré :
$device = "wanted";
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;
some_function(); // never reached!
}
another_function(); // not executed after match/break
}
Juste pour être complet, pour les autres qui tomberont sur cette question en cherchant une réponse
break
prend un argument facultatif, qui définit combien de structures en boucle, il devrait se briser. Exemple :
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 "!";
Résultat :
1 3 2 1 !
0 votes
Pour php et non pour js. Je ne peux pas supposer qu'ils se comportent de la même manière.
7 votes
Il faut que j'arrête d'utiliser autant jQuery. pourquoi cette question a-t-elle reçu un vote négatif ? +1, question parfaitement raisonnable et bien posée.
13 votes
Je n'ai posé la question que parce que (pour une raison quelconque) je n'arrivais pas à comprendre la doc php break et ses exemples. tout va bien cependant. je ne suis pas ici pour obtenir des badges et des points, juste de bonnes réponses.