break
Découvrez comment le mot-clé "break" de PHP met fin à une boucle ou à un switch, avec des exemples pratiques et des cas d'utilisation courants.
Le mot-clé PHP break
break est une instruction de contrôle de flux qui met fin immédiatement à la boucle englobante la plus proche ou au switch. L'exécution saute à la première ligne après cette structure — les itérations restantes sont ignorées. Il fonctionne à l'intérieur de for, foreach, while, do...while et switch.
On utilise break dès que l'on a trouvé ce que l'on cherchait, ou que l'on atteint une condition qui rend la poursuite inutile : un enregistrement correspondant dans une liste, une erreur irrécupérable, ou un cas switch déjà traité. Arrêter tôt économise des ressources et clarifie la logique.
Cette page couvre la syntaxe, chaque type de boucle, le cas switch, la sortie de boucles imbriquées avec break N, et comment break diffère de continue.
Syntaxe
<?php
while (condition) {
// code that runs each iteration
if (break_condition) {
break; // exit the loop right now
}
}
// execution continues here after breakQuand break_condition est vraie, la boucle se termine et la ligne suivant l'accolade fermante s'exécute ensuite. La condition est facultative — un simple break; sort toujours — mais en pratique on le protège presque toujours avec un if, sinon la boucle ne s'exécuterait qu'une seule fois.
Sortir d'une boucle
L'utilisation la plus courante est d'arrêter une recherche dès que l'on a une réponse. Une fois la valeur trouvée, il est inutile de continuer à parcourir le reste du tableau.
<?php
$haystack = [10, 22, 35, 47, 58];
$target = 35;
$found = false;
foreach ($haystack as $index => $value) {
if ($value === $target) {
$found = true;
echo "Found $target at index $index\n";
break; // stop — no need to check the rest
}
}
if (!$found) {
echo "Not found\n";
}
// Output: Found 35 at index 2Le même schéma fonctionne avec les autres types de boucles. Ici, break sort d'une boucle while (true) — une boucle intentionnellement infinie dont la seule sortie est le break :
Utiliser break dans un switch
Dans une instruction switch, break empêche l'exécution de « tomber » dans le cas suivant. Sans lui, PHP continue d'exécuter le code des cas situés en dessous de celui qui a correspondu.
<?php
$role = "editor";
switch ($role) {
case "admin":
echo "Full access";
break;
case "editor":
echo "Can edit content";
break; // without this, "Read-only" would also run
default:
echo "Read-only";
}
// Output: Can edit contentSortir de boucles imbriquées avec break N
Par défaut, break ne sort que de la boucle la plus interne. Pour sortir de plusieurs niveaux à la fois, passez un nombre : break 2; sort de deux structures englobantes, break 3; en sort trois, et ainsi de suite.
<?php
for ($i = 1; $i <= 3; $i++) {
foreach (['a', 'b', 'c'] as $letter) {
if ($letter === 'b') {
break 2; // exit BOTH the foreach and the for
}
echo "$i-$letter\n";
}
}
echo "Done\n";
// Output:
// 1-a
// DoneUn simple break; ici ne terminerait que le foreach interne, et le for externe démarrerait son itération suivante. break 2; termine les deux, donc l'exécution saute directement à echo "Done";.
Remarque : Le nombre après
breakdoit être un littéral —break $level;est une erreur fatale depuis PHP 5.4. Si vous avez besoin de cette flexibilité, restructurez les boucles ou déplacez-les dans une fonction et utilisezreturn.
break vs. continue
Ces deux instructions sont faciles à confondre :
breakarrête complètement la boucle et passe au code qui la suit.continueignore seulement le reste de l'itération courante et passe à la suivante — la boucle continue.
Voir break et continue pour une comparaison côte à côte.
Pièges courants
- Oublier
breakdans unswitchentraîne un passage accidentel au cas suivant, ce qui fait s'exécuter plusieurs cas. C'est parfois intentionnel (regroupement de cas), mais généralement un bug. breakn'affecte que les boucles etswitch— il ne peut pas servir à sortir d'un blocifou d'une fonction. Utilisezreturnpour quitter une fonction.- Compter les niveaux pour
break Nest fragile ; si vous enveloppez ultérieurement le code dans une autre boucle, le nombre devient incorrect. Gardez l'imbrication peu profonde.
Sujets connexes
- continue — passer à l'itération suivante au lieu de s'arrêter
- boucle for et boucle while
- boucle foreach — itérer sur des tableaux
- switch — où
breaksépare les cas