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 3 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 solange 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 wollen unserer Schleife mitteilen, dass wir
5 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 solange 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
5 Zeilen ausgeben, für jedes Mitglied eine.
Die Ausgabe würde dann, so aussehen:

Mit richtig angewendeten Schleifen kann man viele
Problemstellungen lösen und sich vor allem 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
|