W3docs

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 break en dehors d'une boucle ou d'une instruction switch dé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

php— editable, runs on the server

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

php— editable, runs on the server

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

php— editable, runs on the server

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

InstructionEffet
breakArrête complètement la boucle ; l'exécution reprend après la boucle.
continueIgnore le reste de l'itération en cours ; la boucle continue.
break NSort de N boucles imbriquées à la fois.
continue NPasse à l'itération suivante de la boucle N niveaux au-dessus.

Pièges courants

  • continue dans une boucle do...while réévalue toujours la condition. Il ne saute pas le test de condition, donc la boucle peut toujours se terminer après un continue.
  • continue se comporte différemment à l'intérieur d'un switch. Dans un switch situé dans une boucle, continue agit comme break pour le switch et émet un avertissement dans les versions modernes de PHP. Utilisez break pour quitter le switch, et réservez continue pour la boucle environnante.
  • Le décalage d'un avec continue dans une boucle for est rare car l'incrément de l'instruction for s'exécute normalement — mais dans une boucle while, vous devez mettre à jour le compteur avant continue, 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 bouclesfor, foreach, while et do...while.

Pratique

Pratique
En PHP, quelle est la fonction principale des instructions 'break' et 'continue' ?
En PHP, quelle est la fonction principale des instructions 'break' et 'continue' ?
Was this page helpful?