W3docs

PHP-Schleifen: Ein umfassender Leitfaden

PHP-Schleifen lernen: for, while, do-while und foreach mit Beispielen, break und continue, verschachtelte Schleifen und Tipps zur Auswahl.

Schleifen ermöglichen es Ihnen, denselben Codeblock immer wieder auszuführen, ohne ihn zu kopieren. Anstatt zehn echo-Anweisungen zu schreiben, schreiben Sie eine einzige und weisen PHP an, sie zehnmal zu wiederholen. Fast jedes reale Programm iteriert über irgendetwas: Zeilen aus einer Datenbank, Artikel in einem Warenkorb, Zeilen in einer Datei oder Zahlen in einem Bereich.

PHP bietet vier Schleifenkonstrukte:

  • for — wenn Sie wissen, wie oft Sie wiederholen müssen, oder wenn Sie einen Zähler benötigen.
  • while — wiederholt solange eine Bedingung wahr bleibt (Sie wissen möglicherweise nicht im Voraus, wie oft).
  • do...while — wie while, aber der Rumpf wird immer mindestens einmal ausgeführt.
  • foreach — die bevorzugte Schleife zum Durchlaufen jedes Elements eines Arrays.

Diese Seite behandelt die Syntax jeder Schleife, die Steuerung mit break und continue, verschachtelte Schleifen und die Auswahl der richtigen Schleife.

For-Schleifen

Eine for-Schleife wiederholt einen Block eine bekannte Anzahl von Malen. Ihr Header besteht aus drei durch Semikolons getrennten Teilen:

for (initializer; condition; update) {
  // body
}
  1. Initialisierer wird einmal ausgeführt, bevor die Schleife beginnt – normalerweise zum Einrichten eines Zählers.
  2. Bedingung wird vor jeder Iteration geprüft. Die Schleife läuft, solange sie true ist, und stoppt, sobald sie false wird.
  3. Aktualisierung wird nach jeder Iteration ausgeführt – normalerweise zum Erhöhen des Zählers.
php— editable, runs on the server

Hier beginnt $i bei 0, der Rumpf läuft, solange $i < 10 gilt, und $i++ fügt nach jedem Durchlauf 1 hinzu. Die Schleife gibt The number is 0 bis The number is 9 aus – zehn Zeilen. Beachten Sie, dass sie bei 9 stoppt, nicht bei 10, weil die Bedingung $i < 10 bereits falsch ist, wenn $i den Wert 10 erreicht. Die hier verwendeten relationalen Operatoren (<, ++) werden unter PHP-Operatoren behandelt.

While-Schleifen

Eine while-Schleife wiederholt, solange ihre Bedingung wahr ist. Verwenden Sie sie, wenn die Anzahl der Iterationen nicht im Voraus feststeht – beispielsweise beim Lesen bis zum Ende einer Datei.

php— editable, runs on the server

Dies gibt dieselben zehn Zeilen wie das for-Beispiel oben aus. Der Unterschied ist rein stilistisch: Bei while verwalten Sie den Zähler selbst ($i = 0 vor der Schleife, $i++ darin). Das Vergessen von $i++ würde die Bedingung dauerhaft wahr halten – eine Endlosschleife, der häufigste Schleifenfehler.

Do-While-Schleifen

Eine do...while-Schleife ist wie while, prüft die Bedingung jedoch nach dem Ausführen des Rumpfes. Das bedeutet, der Rumpf wird immer mindestens einmal ausgeführt, selbst wenn die Bedingung von Anfang an falsch ist.

php— editable, runs on the server

Dies gibt ebenfalls 0 bis 9 aus. Das Verhalten „mindestens einmal" ist wichtig, wenn die Bedingung von etwas abhängt, das der Schleifenrumpf erzeugt – beispielsweise beim Abfragen einer Benutzereingabe und erneutem Wiederholen nur bei ungültiger Eingabe. Beachten Sie das Semikolon nach while (...); es ist hier erforderlich.

Foreach-Schleifen

Eine foreach-Schleife durchläuft jedes Element eines Arrays der Reihe nach. Es ist die sauberste Methode, eine Sammlung zu durchlaufen, da Sie keinen Index manuell verwalten müssen.

Die einfachste Form liefert Ihnen jeden Wert:

php— editable, runs on the server

Bei jedem Durchlauf enthält $value das nächste Element, sodass Red, Green und dann Blue ausgegeben wird.

Für assoziative Arrays verwenden Sie die $key => $value-Form, um sowohl Schlüssel als auch Wert zu lesen:

php— editable, runs on the server

Dies gibt Peter is 32, Quagmire is 30 und Joe is 34 aus. foreach bewahrt die Einfügereihenfolge, sodass die Elemente in der Reihenfolge ausgegeben werden, in der Sie sie definiert haben.

Schleifensteuerung: break und continue

Manchmal müssen Sie eine Schleife vorzeitig beenden oder einen einzelnen Durchlauf überspringen. Dafür sind break und continue zuständig, und sie funktionieren in jedem Schleifentyp.

PHP break-Anweisung

Die break-Anweisung stoppt die Schleife sofort und springt zum Code danach.

php— editable, runs on the server

Wenn $i den Wert 5 erreicht, beendet break die Schleife, sodass nur Number: 0 bis Number: 4 ausgegeben wird.

PHP continue-Anweisung

Die continue-Anweisung überspringt den Rest der aktuellen Iteration und springt direkt zur nächsten – die Schleife selbst läuft weiter.

php— editable, runs on the server

Hier überspringt continue die Iteration, bei der $i == 5, sodass jede Zahl außer 5 ausgegeben wird: Number: 0 bis Number: 4, dann Number: 6 bis Number: 9.

Verschachtelte Schleifen

Sie können eine Schleife in eine andere platzieren. Die innere Schleife läuft bei jedem einzelnen Durchlauf der äußeren Schleife vollständig durch. So erstellen Sie Gitter, Tabellen und Multiplikationstabellen.

<?php

for ($row = 1; $row <= 3; $row++) {
  for ($col = 1; $col <= 3; $col++) {
    echo $row * $col . "\t";
  }
  echo "\n";
}

?>

Die äußere Schleife läuft dreimal (einmal pro Zeile); für jede Zeile läuft die innere Schleife dreimal (einmal pro Spalte) und gibt ein 3×3-Multiplikationsgitter aus. Beachten Sie, dass innerhalb einer verschachtelten Schleife break und continue nur die Schleife betreffen, in der sie sich befinden. Um aus mehr als einer Ebene gleichzeitig auszubrechen, können Sie eine Zahl übergeben: break 2; verlässt zwei Schleifen.

Welche Schleife soll ich verwenden?

SituationBeste Wahl
Sie kennen die Iterationsanzahl oder benötigen einen Zählerfor
Wiederholen, solange eine Bedingung gilt, Anzahl unbekanntwhile
Wie while, aber der Rumpf muss mindestens einmal laufendo...while
Jedes Element eines Arrays verarbeitenforeach

Im Zweifelsfall bei Arrays greifen Sie zu foreach – es ist am lesbarsten und am schwierigsten falsch zu machen, da kein Index verwaltet werden muss und kein Risiko besteht, den Bereich zu überschreiten.

Fazit

PHPs vier Schleifen decken jedes Wiederholungsmuster ab: for für gezählte Schleifen, while und do...while für bedingungsgesteuerte Schleifen und foreach für Arrays. Kombinieren Sie sie mit break und continue, um den Ablauf zu steuern, und verschachteln Sie sie für die Arbeit mit Gittern und Tabellen. Sobald Schleifen vertraut sind, kombinieren Sie sie mit bedingten Anweisungen, der switch-Anweisung und Funktionen, um vollständige Programme zu strukturieren.

Übungen

Übung
Welche der folgenden sind gültige Schleifentypen in PHP?
Welche der folgenden sind gültige Schleifentypen in PHP?
Was this page helpful?