Werbung einblenden Werbung ausblenden


Home / Tutorials / PHP Handbuch / Schleifen


Schleifen
Die for-Schleife
Die foreach-Schleife
Die while-Schleife

Schleifen

Schleifen wurden im Kapitel Arrays und Hashes bereits genutzt. Sie sind eigentlich in allen Programmiersprachen gleich und die Syntax ist eigentlich ohne weiteres verständlich. Die berühmteste aller Schleifen ist wohl die for-Schleife.

Die for-Schleife

<?
for ($i=0;$i<6;$i++)
{
print "hallo ich bin Runde Nr. $i <br>";
}
?>

Das Ergebnis sieht dann so aus:

hallo ich bin Runde Nr. 0
hallo ich bin Runde Nr. 1
hallo ich bin Runde Nr. 2
hallo ich bin Runde Nr. 3
hallo ich bin Runde Nr. 4
hallo ich bin Runde Nr. 5

Wie unschwer zu erkennen, hat die for Schleife hierbei folgende Syntax:
for (Initialisierung der Laufvariablen; Bedingung, die Angibt, wie lange die Schleife laufen soll;Inkrementierungsfaktor)


{
Befehle
}

Die foreach-Schleife

Die foreach-Schleife gibt es nicht in jeder Programmiersprache. Ursprünglich wohl nur in Perl, gibt es sie heute auch in C# und eben auch PHP. Von ihr wurde im Kapitel Arrays und Hashes ausgiebig Gebrauch gemacht, weil sie sie ja gerade dazu dient, Arrays und Hashs auszulesen. Einen Array könnte man mit dem Skript unten auch mit einer for-Schleife auslesen.

<?
$obst=array("Banane","Birne","Pflaumen","Aprikosen");

for ($i=0;$i<count($obst);$i++)
{
print $obst[$i]."<br>";
}
?>

Kürzer ist es mit foreach

<?
$obst=array("Banane","Birne","Pflaumen","Aprikosen");

foreach($obst as $fruchtsorte)
{
print " $fruchtsorte<br>";
}
?>

Schwieriger wird es, wenn ein Hash ausgelesen werden soll. Dann kann man das zwar auch mit einer for-Schleife machen

<?
$obst=array("Banane"=>"Guatemala","Birne"=>"Deutschland",
"Pflaumen"=>"Frankreich","Aprikosen"=>"Italien");
for($i=0; $i<count($obst);$i++)
{
$schluessel=key($obst);
next($obst);
print "Der Schlüssel ist ". $schluessel. " und der Wert ist " .$obst["$schluessel"]."<br>";
}
?>

aber einfacher ist dann wohl doch die foreach-Schleife

<?
$obst=array("Banane"=>"Guatemala","Birne"=>"Deutschland",
"Pflaumen"=>"Frankreich","Aprikosen"=>"Italien");
foreach($obst as $schluessel => $wert)
{
print "Der Schlüssel ist $schluessel und der Wert ist $wert<br>";
}
?>

Die while-Schleife

Als dritte Schleife gibt es noch die while-Schleife. In der Regel lässt sich das, was mit einer foreach oder for-Schleife realisiert werden kann, auch mit einer while-Schleife realisieren. Umgekehrt gilt das nicht unbedingt, wie wir gleich sehen werden. Eine while-Schleife wird solange ausgeführt, wie die Bedingung, die vor jedem Durchlauf der Schleife geprüft wird, den Wert wahr ergibt. Den Skript unten löst man also besser nicht aus.

<?
while(true)
{
print "hallo";
}
?>

Wer sich nicht beherrschen kann, dem sei gesagt, dass es bei diesem Skript nur noch die Möglichkeit gibt mit Steurung / Alt /Entfernen den Browser zuzumachen. Da die Bedingung im Beispiel oben immer auf true steht, wird die while-Schleife nie abgebrochen. Die while-Schleife wird abgebrochen, wenn die Bedingung false oder 0 ist.

<?
$variable=true;
while($variable)
{
print $zaehler;
$zaehler++;
if ($zaehler == 10)
{
$variable=false;
}
print "hallo <br>";
}
?>

vorhergehendes Kapitel