for Schleife
Sie befinden sich: Home > Php >
for Schleife
For-Schleifen sind in PHP, neben While-Schleifen, eine Möglichkeit einen bestimmten Codeablauf immer und immer wieder durchführen zu lassen. Gegenüber der While-Schleife ist in der For-Schleife bereits eine Art Zähler vorhanden, der festlegt, wie oft die Schleife durchgeführt wird. Das bedeutet aber nicht, dass man jede While-Schleife durch eine For-Schleife ersetzen kann, da While-Schleifen eine andere Art von Bedingungen abhandeln. Schleifen sind im Übrigen bei anspruchsvolleren Skripten nicht wegzudenken, da sie einem viel Arbeit ersparen.
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 beeinflussen mittels continue oder breake
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
|