# Websiteentwicklung: PHP: Praktische Einführung: Schleifen

Schleifen sind Kontrollstrukturen, mit deren Hilfe man Codeabschnitte beliebig oft wiederholen kann. In PHP gibt es grundsätzlich drei (bzw. vier) verschiedene Arten von Schleifen.

## while

Eine while-Schleife wird so oft wiederholt, wie die Bedingung im Schleifenkopf als true ausgewertet wird (siehe dazu auch das Kapitel zu Castings). Dabei ist zu beachten, dass in jedem Durchlauf immer zuerst geprüft wird, ob die Bedingung "wahr" ist und danach ggf. der Schleifenrumpf ausgeführt wird. Wenn die Abbruchbedingung nicht wahr ist, wird das Programm nach der Schleife fortgesetzt. Es kann also sein, dass diese Schleife auch gar nicht ausgeführt wird. Daher nennt man die While-Schleife eine Kopf-gesteuerte Schleife.
In diesem Beispiel würde der Schleifenrumpf dreimal ausgeführt. Sobald $i den Wert 4 erhält, ist die Bedingung $i < 4 (in diesem Fall also 4 < 4) nicht mehr wahr und somit wird die Schleife für 4 kein weiteres Mal ausgeführt.

### do-while

Die do-while-Schleife funktioniert so ähnlich wie die while-Schleife, aber mit dem entscheidenden Unterschied, dass die Prüfung der Bedingung bei jedem Schleifendurchlauf immer erst nach dem Ausführen des Schleifenrumpfes geschieht.
Im Gegensatz zur while-Schleife wird hierbei an den Anfang des Rumpfes das Schlüsselwort do gestellt und das while mit der Abbruchbedingung (wie es schon in der normalen while-Schleife am Kopf des Rumpfes zu finden ist) an das Fuß bzw. Ende des Rumpfes.
Im Unterschied zur while-Schleife wird die do-while-Schleife auf jeden Fall mindestens einmal ausgeführt, da die Abbruchbedingung erst nach dem Ausführen am Ende bzw. am Fuß des Rumpfes geprüft wird. Daher nennt man sie auch eine Fuß-gesteuerte Schleife.

## foreach

Die foreach-Schleife wurde bereits im Kapitel der Arrays behandelt.

## for

Die for-Schleife ist die komplizierteste Schleife in PHP. Meistens wird sie dazu verwendet um über Arrays (oder andere abzählbare Strukturen) zu iterieren. Der Schleifenkopf der for-Schleife besteht aus drei unterschiedlichen Teilen, die voneinander durch ein Semikolon getrennt sind:
* Der erste Abschnitt wird vor dem ersten Durchlauf der Schleife ausgeführt.
* Der zweite Abschnitt wird vor dem Beginn jedes einzelnen Durchlaufs ausgeführt. Außerdem wird dieser Abschnitt auch als Schleifenbedingung verwendet. Die Schleife wird also solange wiederholt, wie der Ausdruck in diesem Abschnitt als true ausgewertet wird.
* Der dritte Abschnitt wird nach dem Ende jedes einzelnen Durchlaufs durchgeführt.
Wenn man den Schleifenkopf in diesem Beispiel analysiert, stellt man fest, dass im ersten Abschnitt (also vor dem allerersten Durchlauf) die Variable $i auf 0 gesetzt wird und dass im letzten Abschnitt (also nach dem Ende eines jeden Durchlaufs) der Wert von $i um eins erhöht wird.
Die Bedingung - also der zweite Abschnitt - gibt in diesem Beispiel solange true zurück, wie $i kleiner als 3 ist, da das Array $personen drei Elemente hat. Das bedeutet, dass die Schleife dreimal durchlaufen wird, wobei $i erst den Wert 0, beim zweiten Mal 1 und schließlich den Wert 2 hat.

## Weiteres
### break

Mit break lässt sich die Ausführung der Schleife an einem bestimmten Punkt unterbrechen. Ein simples Beispiel:

### continue

Mit continue lässt sich die Schleife an einer beliebigen Stelle fortführen.