Les boucles PHP avec l'instruction Break
En PHP, break interrompt une boucle immédiatement et continue passe à l'itération suivante. Apprenez à les utiliser, y compris break N et continue N.
Lorsque vous écrivez une boucle en PHP, vous avez souvent besoin d'un contrôle plus fin que « exécuter chaque itération ». Deux instructions vous offrent ce contrôle : break quitte la boucle prématurément, et continue ignore le reste de l'itération en cours. Cette page couvre les deux, notamment leur application aux boucles imbriquées avec break N et continue N.
Comprendre l'instruction Break
L'instruction break met immédiatement fin à la boucle courante (ou au switch) et transfère le contrôle à la première instruction après la boucle. Utilisez-la lorsque vous avez trouvé ce que vous cherchiez, ou lorsque continuer serait inutile ou risqué — par exemple, après avoir repéré un enregistrement correspondant ou rencontré une condition d'erreur.
break fonctionne à l'intérieur des boucles for, foreach, while et do...while, ainsi qu'à l'intérieur d'une instruction switch.
Remarque : Utiliser
breaken dehors d'une boucle ou d'une instructionswitchdéclenche une erreur fatale en PHP.
Utiliser l'instruction Break dans une boucle For
Dans une boucle for, l'instruction break peut être utilisée pour arrêter la boucle lorsqu'une condition spécifique est remplie. Par exemple, le code suivant utilise une boucle for pour rechercher un nombre dans un array :
Exemple PHP de break dans une boucle for
Dans ce code, la boucle s'arrêtera dès que la valeur de $numbers[$i] sera égale à 3. La sortie de ce code sera "Found 3 at index 2".
Utiliser l'instruction Break dans une boucle Foreach
Dans une boucle foreach, l'instruction break fonctionne de manière similaire à la boucle for. Le code suivant utilise une boucle foreach pour rechercher une valeur spécifique dans un array associatif :
Exemple PHP de break dans une boucle foreach
Dans ce code, la boucle s'arrêtera dès que la clé $color sera égale à "green". La sortie de ce code sera "green has hex code #00FF00".
Sortir des boucles imbriquées avec Break
L'instruction break peut également être utilisée pour sortir de boucles imbriquées. Lorsqu'une instruction break est utilisée à l'intérieur d'une boucle imbriquée, seule la boucle la plus interne est terminée.
Par exemple, le code suivant utilise deux boucles imbriquées pour rechercher une valeur spécifique dans un array à deux dimensions :
Exemple PHP de break dans des boucles imbriquées
Dans ce code, l'instruction break 2 est utilisée pour sortir de deux niveaux d'imbrication. La sortie de ce code sera Found 5 at [1][1].
Le nombre après break indique combien de boucles englobantes quitter, et non un index de boucle. break 1 est identique à un simple break, et le nombre ne peut pas être supérieur à la profondeur d'imbrication réelle.
Comprendre l'instruction Continue
Là où break quitte complètement la boucle, continue ne fait que sauter le reste de l'itération en cours et passe directement à la suivante. La boucle elle-même continue de s'exécuter. C'est le choix naturel lorsque vous souhaitez ignorer certains éléments tout en traitant tous les autres.
La boucle suivante affiche tous les nombres de 1 à 10, sauf les nombres pairs :
Exemple PHP de continue dans une boucle for
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i % 2 == 0) {
continue; // skip even numbers
}
echo "$i ";
}
?>La sortie est 1 3 5 7 9 — lorsque $i est pair, continue ignore le echo et la boucle passe à la valeur suivante.
Continue dans une boucle Foreach
continue est particulièrement utile dans une boucle foreach lorsque vous souhaitez filtrer des éléments au fur et à mesure. Ici, nous ignorons tout produit en rupture de stock :
Exemple PHP de continue dans une boucle foreach
<?php
$products = array(
array("name" => "Pen", "stock" => 12),
array("name" => "Notebook", "stock" => 0),
array("name" => "Eraser", "stock" => 5),
);
foreach ($products as $product) {
if ($product["stock"] === 0) {
continue; // don't list sold-out items
}
echo $product["name"] . " (" . $product["stock"] . " in stock)\n";
}
?>Cela affiche Pen et Eraser, en ignorant le Notebook en rupture de stock.
Sauter plusieurs niveaux avec continue N
Tout comme break N, continue N passe à l'itération suivante d'une boucle externe. continue 2, par exemple, relance la boucle un niveau au-dessus :
Exemple PHP de continue 2 dans des boucles imbriquées
<?php
for ($i = 1; $i <= 3; $i++) {
for ($j = 1; $j <= 3; $j++) {
if ($j == 2) {
continue 2; // jump to the next $i
}
echo "i=$i j=$j\n";
}
}
?>La boucle interne n'affiche jamais que j=1, car atteindre j == 2 relance la boucle externe. La sortie est i=1 j=1, i=2 j=1, i=3 j=1.
Break vs. Continue
| Instruction | Effet |
|---|---|
break | Arrête complètement la boucle ; l'exécution reprend après la boucle. |
continue | Ignore le reste de l'itération en cours ; la boucle continue. |
break N | Sort de N boucles imbriquées à la fois. |
continue N | Passe à l'itération suivante de la boucle N niveaux au-dessus. |
Pièges courants
continuedans une boucledo...whileréévalue toujours la condition. Il ne saute pas le test de condition, donc la boucle peut toujours se terminer après uncontinue.continuese comporte différemment à l'intérieur d'unswitch. Dans unswitchsitué dans une boucle,continueagit commebreakpour leswitchet émet un avertissement dans les versions modernes de PHP. Utilisezbreakpour quitter leswitch, et réservezcontinuepour la boucle environnante.- Le décalage d'un avec
continuedans une boucleforest rare car l'incrément de l'instructionfors'exécute normalement — mais dans une bouclewhile, vous devez mettre à jour le compteur avantcontinue, sinon vous risquez de créer une boucle infinie.
Conclusion
Les instructions break et continue vous donnent un contrôle précis sur l'exécution des boucles : break quitte une boucle prématurément, tandis que continue saute une itération et continue. Les formes break N et continue N étendent ce contrôle aux boucles imbriquées. Ensuite, découvrez comment fonctionnent les différents types de boucles — for, foreach, while et do...while.