W3docs

break

Das PHP-Schlüsselwort "break" beendet sofort die nächste umschließende Schleife oder switch-Anweisung und spart so unnötige Iterationen.

Das PHP-Schlüsselwort break

break ist eine Kontrollflussanweisung, die die nächste umschließende Schleife oder switch-Anweisung sofort beendet. Die Ausführung springt zur ersten Zeile nach dieser Struktur — alle verbleibenden Iterationen werden übersprungen. Es funktioniert in for-, foreach-, while-, do...while- und switch-Anweisungen.

break kommt dann zum Einsatz, wenn Sie gefunden haben, was Sie gesucht haben, oder eine Bedingung eingetreten ist, die ein Weitermachen sinnlos macht: ein übereinstimmender Eintrag in einer Liste, ein nicht behebbarer Fehler oder ein behandelter switch-Fall. Frühzeitiges Abbrechen spart Arbeit und hält Ihre Logik übersichtlich.

Diese Seite behandelt die Syntax, alle Schleifentypen, den switch-Fall, das Verlassen verschachtelter Schleifen mit break N sowie den Unterschied zwischen break und continue.

Syntax

<?php

while (condition) {
  // code that runs each iteration
  if (break_condition) {
    break; // exit the loop right now
  }
}
// execution continues here after break

Wenn break_condition wahr ist, endet die Schleife und die Zeile nach der schließenden Klammer wird als nächstes ausgeführt. Die Bedingung ist optional — ein bloßes break; beendet immer die Schleife —, aber in der Praxis schützen Sie es fast immer mit einem if, da sonst die Schleife immer nur einmal durchlaufen würde.

Aus einer Schleife ausbrechen

Der häufigste Anwendungsfall ist, eine Suche zu beenden, sobald Sie eine Antwort haben. Sobald der Wert gefunden wurde, gibt es keinen Grund, den Rest des arrays weiter zu durchsuchen.

<?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

Dasselbe Muster funktioniert mit den anderen Schleifentypen. Hier beendet break eine while (true)-Schleife — eine absichtlich endlose Schleife, deren einziger Ausgang break ist:

php— editable, runs on the server

break in einer switch-Anweisung verwenden

Innerhalb einer switch-Anweisung verhindert break das „Durchfallen" in den nächsten Fall. Ohne break führt PHP den Code in den nachfolgenden Fällen weiter aus, auch wenn bereits ein Fall übereinstimmt.

<?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

Aus verschachtelten Schleifen ausbrechen mit break N

Standardmäßig beendet break nur die innerste Schleife. Um mehrere Ebenen auf einmal zu verlassen, übergeben Sie eine Zahl: break 2; beendet zwei umschließende Strukturen, break 3; beendet drei, und so weiter.

<?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

Ein einfaches break; würde hier nur das innere foreach beenden, und das äußere for würde mit der nächsten Iteration fortfahren. break 2; beendet beide, sodass die Ausführung direkt zu echo "Done"; springt.

Hinweis: Die Zahl nach break muss ein Literal sein — break $level; ist seit PHP 5.4 ein fataler Fehler. Wenn Sie diese Flexibilität benötigen, strukturieren Sie die Schleifen um oder verschieben Sie sie in eine Funktion und verwenden Sie return.

break vs. continue

Diese beiden sind leicht zu verwechseln:

  • break beendet die Schleife vollständig und fährt mit dem Code danach fort.
  • continue überspringt nur den Rest der aktuellen Iteration und springt zur nächsten — die Schleife läuft weiter.

Siehe break und continue für einen direkten Vergleich.

Häufige Fallstricke

  • Vergessenes break in einer switch-Anweisung führt zu unbeabsichtigtem Durchfallen, sodass mehrere Fälle ausgeführt werden. Dies ist gelegentlich beabsichtigt (Zusammenfassen von Fällen), meistens jedoch ein Fehler.
  • break wirkt nur auf Schleifen und switch — Sie können es nicht verwenden, um einen if-Block oder eine Funktion zu verlassen. Verwenden Sie return, um eine Funktion zu beenden.
  • Das Zählen der Ebenen für break N ist fehleranfällig; wenn Sie den Code später in einer weiteren Schleife einschließen, stimmt die Zahl nicht mehr. Halten Sie die Verschachtelung flach.

Verwandte Themen

Übungen

Übung
Was bewirkt die 'break'-Anweisung in PHP?
Was bewirkt die 'break'-Anweisung in PHP?
Was this page helpful?