Programmieren mit PHP, Teil 4 While- und For-Schleifen in PHP nutzen

Autor / Redakteur: Thomas Joos / Stephan Augsten |

Wie in jeder Programmiersprache spielen Schleifen auch in PHP eine Rolle. Sinnvoll sind diese zum Beispiel für das Befüllen von Tabellen oder anderen Aufgaben, in denen immer eine Aktion wiederholt werden soll.

Anbieter zum Thema

Wiederkehrende Anweisungen oder Operation lassen sich am besten in Schleifen abbilden.
Wiederkehrende Anweisungen oder Operation lassen sich am besten in Schleifen abbilden.
(Bild gemeinfrei: Boskampi - Pixabay.com)

Schleifen sind ein wichtiger Bestandteil in PHP. Wichtig sind Schleifen zum Beispiel beim Einlesen von Daten aus Datenbanken. Verbreitet sind zum Beispiel die Schleifen „while“ und „for“. Wir gehen nachfolgend auf die Möglichkeiten von While- und For-Schleifen ein. Schleifen lassen sich natürlich auch verschachteln, das heißt in einer Schleife werden weitere Schleifen aufgenommen. While- und For-Schleifen lassen sich hierfür beliebig miteinander kombinieren.

While-Schleifen

Eine While-Schleife beginnt mit dem Schlüsselwort „while“ (so lange). Hinter dem Schlüsselwort wird in Klammern die Durchlaufbedingung integriert, die festlegt, wie lange die Schleife den hinterlegten Befehl ausführen soll. Ist die Bedingung „wahr“, wird die Schleife ausgeführt, wenn nicht, dann wird die Schleife nicht ausgeführt. Ausnahme ist die Do-While-Schleife.

Ein Beispiel dafür wäre das Abfragen einer Variablen. Diese Variable kann vor der Schleife zum Beispiel auf einen bestimmten Wert gesetzt werden. Die Schleife wird so lange ausgeführt, wie dieser Wert unterhalb eines definierten Grenzwertes liegt. Der Beginn einer Schleife könnte folgendermaßen aussehen:

$v = 1;
while ($v < 10)

In diesem Fall wird die Schleife also erst unterbrochen, wenn die Variable den Wert 10 erreicht. In geschweiften Klammern wird wiederum definiert, was innerhalb der Schleife geschehen soll, solange die Bedingung erfüllt ist. Für einen ersten Test kann zum Beispiel ein Text ausgegeben werden. So lässt sich überprüfen, ob der Text, und damit der Befehl für die hinterlegte Bedingung so lange ausgeführt wird.

$v = 1;
while ($v < 10) {
   echo „$v Test“
}

In den geschweiften Klammern steht die Anweisung, den Wert der Variablen sowie den Text „Test“ auszugeben. Allerdings würde in diesem Fall die Schleife endlos lange ausgeführt werden und somit immer wieder die Ausgabe „1 Test“ erscheinen, da sich der Wert der Variablen nicht erhöht und somit niemals 10 erreichen kann.

Beim Erstellen einer Schleife muss der Programmierer also darauf achten, dass die Schleife nicht endlos ausgeführt wird. Die Bedingung der Schleife sollte also irgendwann erfüllt werden. Natürlich gilt es auch darauf zu achten, dass auch die Startbedingung der Schleife ausreichend erfüllt ist, damit diese auch ausgeführt wird. In diesem Beispiel wäre dies der Fall, wenn die Variable $v gleich zu Beginn auf 10 gesetzt wird.

In diesem Beispiel wäre es folgerichtig sinnvoll, den Wert der Variablen bei jedem Durchlauf um 1 zu erhöhen, das heißt zu inkrementieren. Dazu kann zum Beispiel „$v++;“ verwendet werden. Dadurch wird die Schleife neunmal ausgeführt, da beim zehnten ausführen die Variable den Wert 10 erreicht hätte, die Durchlaufbedingung aber „solange $v < 10“ lautet.

$v = 1;
while ($v < 10) {
   echo „$v Test“;
   $v++;
}

Bei dieser Schleife wird der Wert von $v auf 1 gesetzt und innerhalb der Schleife bei jedem Durchlauf um 1 erhöht. Nach 9 Durchläufen wird die Schleife beendet. Natürlich lassen sich viele andere Bedingungen setzen, welche die Schleife nutzt.

Endwhile verwenden

Neben der Möglichkeit, die Befehle in einer While-Schleife in geschweifte Klammern zu setzen, können Entwickler auch mit dem Schlüsselwort „endwhile“ arbeiten. Dabei beginnt die Schleife mit einer Bedingung. Danach erfolgt ein Doppelpunkt. Alle Anweisungen hinter dem Doppelpunkt werden ausgeführt, bis das Schlüsselwort „endwhile;“ die Schleife beendet:

$v = 1;
while ($v < 10) :
echo „$v Test“;
$v++;
endwhile;

Sinnvoll ist der Einsatz von „endwhile“ vor allem dann, wenn viele Schleifen verschachtelt werden, und viele Anweisungen enthalten. Die Schlüsselwörter „endwhile“ und „endfor“ bieten so mehr Übersicht, als die Verschachtelung über geschweifte Klammern.

Do-While-Schleifen

Eine weitere Variante der While-Schleife ist die Do-While-Schleife. Um diese zu nutzen, wird vor dem Schlüsselwort „while“ noch das Schlüsselwort „do“ verwendet. Dabei werden zunächst die Anweisungen in den geschweiften Klammern ausgeführt, erst am Ende der Schleife wird mit „while“ die Bedingung überprüft:

$v = 1;
do {
   echo „$v Test“;
   $v++;
}
while ($v < 10)

Bei einer Do-While-Schleife werden die Befehle der Schleife also mindestens einmal ausgeführt wird.

For-Schleifen

Im Gegensatz zu While-Schleifen wird bei For-Schleifen festgelegt, wie oft eine Schleife durchgeführt wird. For-Schleifen beginnen mit dem Schlüsselwort „for“. Danach wird in Klammern ein Zähler definiert:

for ($v = 1; )

Hinter dem Semikolon wird eine Bedingung formuliert, wie lange die Schleife ablaufen soll. Danach wird hinter einem weiteren Semikolon festgelegt, in welchen Schritten sich der Zähler verändern soll:

for ($v = 1; $v < 100; $v++)

Diese Schleife wird 99x durchgeführt, da beim Lauf 100 der Wert nicht mehr kleiner 100 ist. Die Schrittfolge ist jeweils um 1 erhöht. Wie bei While-Schleifen, wird auch bei For-Schleifen die dazugehörigen Befehle in geschweiften Klammern festgelegt:

for ($v = 1; $v < 100; $v++) {
   echo „$v Test“;
}

Ähnlich wie bei While-Schleifen mit „endwhile“ kann man auch bei For-Schleifen mit „endfor“; arbeiten, statt geschweifte Klammern zu nutzen:

for ($v = 1; $v < 100; $v++)
echo „$v Test“;
endfor;

Schleifen steuern

Innerhalb von Schleifen lassen sich Schlüsselwörter verwenden, mit denen sich Schleifen manipulieren lassen. Mit dem Schlüsselwort „continue“ kann in den Anweisungen einer Schleife direkt zum Anfang einer Schleife gesprungen werden. Das Schlüsselwort „break“ beendet eine Schleife sofort.

Sinnvoll kombiniert werden Anweisungen zum Beispiel mit „if“ verwendet. Wenn eine bestimmte Bedingung eintritt, die mit „if“ überprüft wird, führt PHP einen Befehl aus. Hier kann mit „continue“ und „break“ festgelegt werden, dass entweder ein Sprung an den Anfang einer Schleife erfolgen soll, oder das direkte Beenden.

Die Anweisung „break“ kann auch zusammen mit verschachtelten Schleifen genutzt werden. Dazu wird mit „break <N>“ gearbeitet. Dadurch lassen sich innere Schleifen „break 1“ oder die äußere Schleife „break 2“ verlassen.

(ID:45564856)