W3docs

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 break

Quand 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 2

Le 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 :

php— editable, runs on the server

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 content

Sortir 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
// Done

Un 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 break doit ê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 utilisez return.

break vs. continue

Ces deux instructions sont faciles à confondre :

  • break arrête complètement la boucle et passe au code qui la suit.
  • continue ignore 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 break dans un switch entraî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.
  • break n'affecte que les boucles et switch — il ne peut pas servir à sortir d'un bloc if ou d'une fonction. Utilisez return pour quitter une fonction.
  • Compter les niveaux pour break N est fragile ; si vous enveloppez ultérieurement le code dans une autre boucle, le nombre devient incorrect. Gardez l'imbrication peu profonde.

Sujets connexes

Exercice

Pratique
Que fait l'instruction 'break' en PHP ?
Que fait l'instruction 'break' en PHP ?
Was this page helpful?