Die For-Schleife ist der erste Schleifen-Typ, den wir kennenlernen. Der typische Aufbau sieht folgendermaßen aus:
<?php for($i=0; $i < 10; $i++) { echo $i."<br />"; } ?>
In Zeile 2 sind alle Bedingungen der For-Schleife angegeben. Mit dem Schlüsselwort „for“ wird PHP mitgeteilt, dass die For-Schleife hier beginnt. Innerhalb der Klammer sind 3 Blöcke, getrennt durch Semikolons „;“:
- $i=0 – Im ersten Block erhält unsere Zählvariable ihren Startwert. Wir nennen unsere Zählvariable „i“, sie kann aber auch jeden anderen Namen haben, etwa „zaehler“, „counter“, „sdfaawerwe“, etc.
- $i < 10 – Nun folgt die Abbruchbedingung der Schleife. Solange der Wert der Zählvariable „i“ kleiner als 10 ist, wird die Schleife ausgeführt
- $i++ – Bei jedem Schleifendurchlauf erhöht sich die Zählvariable um den Wert 1. Dadurch ist gewährleistet, dass unsere Schleife nach 10 Durchläufen beendet wird. Natürlich kann man auch den Wert um 2 oder mehr erhöhen: „$i = $i + 2“
Wenn du das Beispiel ausführst, solltest du eine vertikal-verlaufende Zahlenreihe von 0-9 sehen. Die Zählvariable ist das Herzstück der Schleife, denn nur durch ihren Wert weiß die Schleife, wann sie beendet werden soll.
Array mit Schleife durchlaufen
Im Abschnitt Arrays haben wir ein Array mit Namen angelegt. Dieses wollen wir jetzt mal mit einer for-Schleife ausgeben:
<?php $namen = array("David", "Norman", "Gerhard", "Henning", "Peter"); for($i=0; $i < 5; $i++) { echo $namen[$i]."<br />"; } ?>
Anstelle also die Container manuell aufzurufen ($namen[0], $namen[1], $namen[2], etc.) nutzen wir eine Schleife, die für uns alle Container anzeigt. Die Schleife startet bei „0“ (weil das 0. Array Element unser 1. Wert ist) und endet sobald $i den Wert 5 hat. Wenn die Schleife feststellt, dass ihre Zählvariable den Wert 5 hat, geht sie nicht mehr in den Ausführungsbereich.
Mit einer Schleife können wir also Programmierzeilen zusammenfassen, bzw eine Operation die wir x-mal schreiben müssten in einer Schleife zusammenfassen. Für 5 Werte macht das noch nicht wirklich Sinn, aber stell dir mal vor, unser Array hätte 2000 oder mehr Namen.
Ist das soweit verständlich?
Endlosschleifen
Ich habe schon darauf hingewiesen, dass eine Schleife eine Abbruchbedingung braucht. Denn wenn eine Schleife nicht abbricht, läuft sie endlos => Endlosschleife. Schau dir dazu folgendes Beispiel an:
<?php for($i=0; $i < 5; $i++) { echo $i."<br />"; $i--; } ?>
Wir haben zwar eine Abbruchbedingung und die Zählvariable wird nach jedem Durchlauf um eins hochgezählt, doch innerhalb der Schleife wird sie immer um 1 reduziert. PHP prüft sowas natürlich nicht, das liegt an uns sowas zu vermeiden/verhindern. Dies ist noch ein einfaches Beispiel, doch manchmal schleichen sich Fehler ein, die nicht so schnell zu finden sind. Andererseits kommt man Endlosschleifen schnell auf die Schliche, denn wenn man sein Skript testet und es nicht fertig wird, liegt das in der Regel an einer Endlosschleife.
For-Schleife Zusammenfassung
Die For-Schleife ist essentiell in PHP und mit ihrer Zählvariable kann man Arrays einfach durchlaufen. Nach jedem Durchlauf kann der Wert der Zählvariable verändert werden, dies ist nötig damit die Abbruchbedingung der Schleife erreicht wird und keine Endlosschleife entsteht.