For-Schleife

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:

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.