Die for-Schleife wird dazu benutzt, eine bestimmte Anzahl an Wiederholungen zu erzeugen. Entweder ist die Anzahl vorher bekannt oder kann errechnet werden.
Ein Beispiel (Datei uc15.php):
<html>
<body>
<?php
for
($i=1; $i<=5; $i++)
{
echo "Zeile $i
<p>";
}
?>
</body>
</html>
Mit Hilfe des
Programmes werden 5 Zeilen in das Dokument geschrieben, jeweils mit
dem Inhalt:
Zeile: <Nummer>.
Die for-Schleife besteht aus Kopf und Rumpf. Der Kopf der for-Schleife besteht aus drei Teilen:
Startwert
Bedingung zur Wiederholung
Veränderung der Schleifenvariablen
Schleifen-Variable
In diesem Beispiel wird die Variable $i als sogenannte »Schleifenvariable« verwendet, d. h., mit Hilfe von $i wird die Schleife gesteuert. $i bekommt zunächst den Wert 1. Es wird geprüft, ob die Bedingung zur Wiederholung erfüllt ist. Ist dies der Fall, wird mit dem Anfangswert der Rumpf der Schleife durchlaufen, es ergibt sich also die Ausgabe Zeile: 1. Anschließend wird die Variable durch die Veränderung der Schleifenvariablen erhöht (auf 2).
Bedingung zur Wiederholung
Es wird geprüft, ob die Bedingung zur Wiederholung noch erfüllt ist. Ist dies der Fall, wird der Rumpf der Schleife mit dem Wert $i (Ausgabe Zeile: 2) durchlaufen usw. Nach dem 5. Durchlauf wird $i auf 6 erhöht. Damit trifft die Bedingung zur Wiederholung nicht mehr zu, das Programm beendet die Schleife und läuft dahinter weiter. Im vorliegenden Programm ist dann das Ende erreicht.
Veränderung der Schleifenvariablen
$i++ ist eine Kurzform der Zuweisung $i=$i+1. Häufig verwendet wird auch $i--, dies ist eine Kurzform der Zuweisung $i=$i-1, also eine Verminderung von $i um 1.
Auch bei Schleifen gilt: Falls sich die Schleife auf mehrere Anweisungen bezieht, müssen diese in geschweifte Klammern gesetzt werden. Streng genommen wäre dies also beim o. g. Beispiel nicht notwendig gewesen, aber es schadet auch nicht.
Beispiele für for-Schleifen
Kopf der for-Schleife |
$i bekommt nacheinander die Werte |
---|---|
for ($i=10; $i<=15; $i++) |
10, 11, 12, 13, 14, 15 |
for ($i=10; $i<15; $i++) |
10, 11, 12, 13, 14 |
for ($i=10; $i>=5; $i--) |
10, 9, 8, 7, 6, 5 |
for ($i=10; $i>5; $i--) |
10, 9, 8, 7, 6 |
for ($i=3; $i<=22; $i=$i+3) |
3, 6, 9, 12, 15, 18, 21 |
for ($i=32; $i>12; $i=$i-4) |
32, 28, 24, 20, 16 |
for ($i=12; $i<13; $i=$i+0.2) |
12.0, 12.2, 12.4, 12.6, 12.8 |
$a=6, $b=16, $c=2; for ($i=$a; $i<$b; $i=$i+$c) |
6, 8, 10, 12, 14 |
Endlos-Schleife
Man sollte immer darauf achten, daß nicht aus Versehen eine Endlos-Schleife erzeugt wird. Dies könnte man z. B. mit dem folgenden Schleifenkopf erreichen: for ($i=3; $i>2; $i=$i+3) Die Bedingung $i>2 ist für alle Zahlen, die erzeugt werden, erfüllt. Demnach wird diese Schleife niemals beendet, und das Programm hängt sich auf.