while
Schleifen funktionieren in PHP wie in jeder C-ähnlichen Sprache nach dem
Muster
while (<Bedingung>)
{
<Schleifeninhalt>
}
Dies prüft am Anfang der Schleife, ob Bedingung wahr ist und wenn ja,
wird die Schleife eben ausgeführt. Dann wird der Wahrheitsgehalt
nochmals überprüft und die Schleife gegebenenfalls nochmal ausgeführt.
do
{
<Schleifeninhalt>
}
while (<Bedingung>)
Prüft am
Ende der Schleife, ob Bedingung wahr ist,
nachdem die Schleife schon ausgeführt wurde. Eine solche Schleife
wird also mindestens einmal ausgeführt.
$i = 1;
while ($i <= 10) {
print $i++; // Siehe Operatoren
}
for
For ist ebenfalls C-ähnlich, die Anweisung lautet
for (<Startanweisung>; <Bedingung>; <Schleifenanweisung>)
{
<Schleifeninhalt>
}
Zuerst wird Startanweisung ausgeführt, dann, falls Bedinung erfüllt ist, der Schleifeninhalt und dann die Schleifenanweisung,
dann wird nochmals überprüft ob die Bedingung noch wahr ist und falls ja wird der Schleifeninhalt nochmals ausgeführt, dann
die Schleifenanweisung und so weiter.
Diese Schleife zählt von 1 bis 10
for ($i=1; $i<=10; $i++)
{
echo "$i ";
}
Diese Schleife zählt in zehnerschritten von 100 bis 200
for ($i=100; $i<=200; $i+=10)
{
echo "$i ";
}
foreach
Perl-ähnlich ist einen Foreach-Anweisung, besonders nützlich im Zusammenhang mit Arrays.
foreach(<Array> as <Temporärvariable>)
{
<Schleifeninhalt>
}
Speichert den ersten Wert des Arrays in der Temporärvariable und
führt den Schleifeninhalt aus. So kann man z.b. einen Array besonders
schön ausgeben:
foreach($myarray as $myvariable)
{
echo "$myvariable, ";
}
Beachten Sie dass foreach offensichtlich einen PHP-internen Cursor im
Array verwendet, wenn Sie foreach in einer rekursiven Funktion auf ein
globales Array anwenden, dann verreckt die Rekursion genau an der Stelle.
Verwenden Sie dann lieber whiles (mit lokalen Zählern) oder lokale Arrays.