for Schleife in PHP: Aufbau und Elemente erklärt
Sie befinden sich: Home > Php >
for Schleife
Die for Schleife in PHP ist ein mächtiges Werkzeug, um Codeabläufe mehrfach auszuführen. Sie
arbeitet mit einer Zählvariablen, einer Bedingung und einer Veränderung, wodurch sich
Wiederholungen präzise steuern lassen. Dieser Artikel erklärt, wie die for-Schleife
funktioniert, wann sie eingesetzt wird und wie sie sich von anderen Schleifen unterscheidet.
Praxisnahe Beispiele zeigen ihre Vorteile, etwa bei der effizienten Ausgabe von Listen.
Dies wird besonders deutlich, wenn man beispielsweise eine Topliste mit 100 Bannern und Links
ausgeben möchte. Stelle man sich vor, dass man 100-mal dasselbe mit kleinen
Abweichungen programmieren müsste, ist man sehr dankbar, dass es Schleifen gibt. Man
umschließt den Code, der sich wiederholen soll, mit der Schleife und hat sich in
diesem Beispiel das Hundertfache an Arbeit gespart, Schleifen sei Dank!
For-Schleifen werden in der Regel durch drei Konfigurationen definiert, nämlich durch
die Schleifenvariable, die Bedingung und die Veränderung. Der Aufbau der Schleife sieht
wie folgt aus:
<?php
/**
* Beispiel für den Aufbau, einer for(){} Schleife
*/
for(/* SCHLEIFENVARIABLE */; /* BEDINGUNG */; /* VERÄNDERUNG */){
/* PHP-CODE INNERHALB DER SCHLEIFE */
}
?>
Nehmen wir uns ein Beispiel zur Hand. Wir möchten eine Mitgliederliste erstellen, bei
der jedes Mitglied eine eigene neue Zeile bekommen soll. Natürlich kann man die
Mitglieder mit jeder gewünschten Größe ersetzen. Wir konfigurieren die
Schleife folgendermaßen:
- Die Schleifenvariable –
Diese Variable ist im Prinzip die Variable, nach der sich die ganze Schleife
richtet und die sozusagen festlegt, wie oft die Schleife sich wiederholt. In unserem
Beispiel enthält sie die Anzahl der Mitglieder. Dies muss vorher natürlich
durch PHP-Code bestimmt werden. Die Beispielvariable heißt $anzahlmitglieder und
enthält die Zahl 4.
- Die Bedingung – Solange die
angegebene Bedingung erfüllt wird, solange wird auch die Schleife ausgeführt.
Diese könnte beispielsweise so aussehen, dass sie so lange erfüllt wird,
solange noch mehr als 0 Mitglieder vorhanden sind: $anzahlmitglieder > 0;
- Die Veränderung – Nach
jedem Mal, wenn die Schleife ausgeführt wurde, muss man, um keine Endlosschleife zu
erzeugen, eine Veränderung auf die Schleifenvariable ausführen. In unserem
Beispiel wird in jedem Schleifendurchlauf ein Mitglied ausgegeben, kann also danach von
der Variable abgezogen werden. Unsere Veränderung sieht also wie folgt aus:
$anzahlmitglieder--
Fassen wir zusammen
Wir möchten unserer Schleife mitteilen, dass wir fünf Mitglieder haben (Schleifenvariable)
und diese ausgeben wollen (Code innerhalb
der Schleife). Jedes Mal, wenn ein Mitglied ausgegeben wurde, soll eins abgezogen
werden (Veränderung) und
der Vorgang soll so lange durchgeführt werden, solange mehr als 0 Mitglieder übrig
bleiben (Bedingung). Die Ausgabe
unserer Mitgliederliste sieht also folgendermaßen aus:
<?php
/**
* Wir Speichern als erstes in $array_daten['mitglied_name']
* die alle Namen Unser Mitglieder die wir weiter unten
* ausgeben möchten.
*/
$array_daten = array();
$array_daten['mitglied_name'][] = 'Nico';
$array_daten['mitglied_name'][] = 'Frank';
$array_daten['mitglied_name'][] = 'Karl';
$array_daten['mitglied_name'][] = 'Lars';
$array_daten['mitglied_name'][] = 'Isa';
/**
* Nun ermitteln wir mit count() wieviel Array-
* Elemente enthalten sind und Speichern die Anzahl
* in $anzahlmitglieder.
*/
$anzahlmitglieder = count($array_daten['mitglied_name']);
/**
* Nun kommen wir zu unser for Schleife
* um eine Mitgliederlist auszugeben.
*
* In der for Schleife zählen wir von 4 zurück
* bis 0, da wir bei 0 das Ende der Schleife
* erfüllt haben. Somit ist die Bedingung erfüllt.
*/
for($anzahlmitglieder; $anzahlmitglieder > 0; $anzahlmitglieder--) {
/**
* In $array_key speichern wir die Key Nummer
* in welchen Step die Schleife ist. Da ein Array
* bis 0 geht, müssen wir minus eins bei der
* Key Nummer rechnen.
*/
$array_key = ($anzahlmitglieder-1);
/**
* Mit array_key_exists() prüfen wir, ob es den
* Key in $array_daten['mitglied_name'] gibt.
*
* Wenn der Key gefunden wurde, geben wir
* diesen aus.
*/
if (array_key_exists($array_key, $array_daten[ 'mitglied_name']) == true) {
echo $array_key.'->'. $array_daten['mitglied_name'][$array_key].'<br>';
}
}
?>
Wenn im Programmcode keine Fehler entstanden sind, dann sollte der Browser, beim Abrufen des
Skripts fünf Zeilen ausgeben, für jedes Mitglied eine. Die Ausgabe würde
dann, so aussehen:

Erklärung: Dieser PHP-Code dient dazu, eine Liste mit Mitgliedern
auszugeben. Zuerst werden die Mitglieder in ein Array
gespeichert. Dazu wird ein neues Array namens $array_daten angelegt und in diesem die Namen
der Mitglieder als Elemente gespeichert. Dies geschieht mit der Funktion
array_daten['mitglied_name'][].
Nachdem alle Namen in das Array gespeichert wurden, wird mit der Funktion count() die Anzahl
der Elemente bestimmt und in $anzahlmitglieder gespeichert. Als Nächstes wird eine
for Schleife gestartet, die von der Anzahl der Mitglieder $anzahlmitglieder zählt und
dann die Schleife beendet.
Innerhalb der Schleife wird die Key Nummer ermittelt und in $array_key gespeichert. Hierbei
muss die Nummer minus eins gerechnet werden, da die Key Nummer bei 0 beginnt. Anschließend
wird mit der Funktion array_key_exists()
geprüft, ob der Key in $array_daten['mitglied_name'] existiert. Wenn ja, wird er
ausgegeben.
Schleifenabläufe in der for Schleife mit continue und break steuern
Der Unterschied zwischen „continue“ und „breake“ bei einer
for-Schleife in PHP besteht darin, wie das Programm auf die aktuelle Iteration der Schleife
reagiert. Wenn eine for-Schleife an einer Stelle auf „continue“ stößt,
bedeutet dies, dass die aktuelle Iteration übersprungen und die nächste Iteration
ausgeführt wird. Wenn die Schleife hingegen auf „breake“ stößt,
wird die Schleife direkt beendet und das Programm setzt seine Ausführung außerhalb
der Schleife fort.
Mit anderen Worten überspringt „continue“ die aktuelle Iteration der
Schleife, während „breake“ die Schleife komplett beendet.
Beispiel:
<?php
for ($i = 0; $i < 10; $i++) {
if ($i % 2 === 0) {
continue;
}
echo "Der Wert von i ist $i <br />";
}
?>
Erklärung:
In diesem PHP-Code wird eine for-Schleife verwendet, um die Schleifenabläufe zu
beeinflussen. Die Schleife beginnt mit der Initialisierung von „$i“ auf 0 und
endet, wenn „$i“ 10 erreicht. In jeder Iteration der Schleife wird überprüft,
ob der Wert von „$i“ durch 2 ohne Rest teilbar ist. Wenn ja, wird die continue
Anweisung verwendet, um die aktuelle Iteration der Schleife abzubrechen und mit der nächsten
Iteration fortzufahren. Wenn „$i“ nicht durch 2 teilbar ist, wird der Wert von
„$i“ ausgegeben. Am Ende der Schleife wird der Wert von „$i“ auf
den nächsten Wert erhöht. Dieser Vorgang wird 10 Mal wiederholt, bis „$i“ 10
erreicht.
Beispiel:
<?php
for ($i = 0; $i < 10; $i++) {
if ($i === 5) {
break;
}
echo "Der Wert von i ist $i <br>";
}
?>
Erklärung:
In diesem PHP-Code wird eine for-Schleife verwendet, um den Wert von „$i“ zu erhöhen
und zu verfolgen, wie viele Schleifenabläufe es gibt. Wenn „$i“ den Wert 5
erreicht, wird die Schleife durch das break-Statement beendet. Der Code wird dann alle Werte
von i ausgeben, bis „$i“ 5 erreicht. Danach wird die Schleife beendet und
der Code wird aufhören auszuführen.
Unterschied zur foreach Schleife
Die for-Schleife und die foreach-Schleife
sind beide Programmierkonstrukte in PHP, die verwendet werden, um einen Codeblock wiederholt
auszuführen. Der Unterschied zwischen beiden liegt in der Art und Weise, in der sie
ausgeführt werden.
Die for-Schleife verwendet eine Zählvariable, um zu bestimmen, wie oft der Codeblock
ausgeführt wird. Die Iterationen werden basierend auf dem Anfangswert, dem Endwert und
dem Inkrementwert der Zählvariable durchlaufen. Der Codeblock wird so lange ausgeführt,
bis die Zählvariable den Endwert erreicht hat. Die foreach-Schleife dagegen wird
verwendet, um ein Array Element für Element durchzulaufen. Es verwendet keine Zählvariable,
sondern ein Array, um die Iterationen durchzuführen. Der Codeblock wird für jedes
Element des Arrays ausgeführt, bis alle Elemente durchlaufen sind.
Alles in allem ist der Unterschied zwischen der for-Schleife und der foreach-Schleife im
Wesentlichen die Art und Weise, wie sie ausgeführt werden. Während die
for-Schleife basierend auf einer Zählvariable ausgeführt wird, verwendet die
foreach-Schleife ein Array, um durchzulaufen.
Mit richtig angewendeten Schleifen kann man viele Problemstellungen lösen und sich
vorwiegend viel Arbeit sparen. Natürlich kann man auch das Array
sortieren oder die for-Schleife mit ++ in der Veränderung hochzählen
lassen. Eine Ausgabe, eines Array kann auch mit einer While -, oder foreach Schleife gemacht
werden. Der Vorteil an der for-Schleife ist, dass man ein Stopp -, und Ablauf Bedingung
festlegen kann.
weiter foreach
Schleife in Php
|