PHP - Grundlagen - Schleifen - Steuerung
1. Nudel, nudel
Schleifen laufen immer so lange durch, bis sie wegen einer bestimmten Bedingung beendet werden. So hat man zum Beispiel das letzte Element eines Arrays erreicht, oder eine Datenbankanfrage liefert keine Daten mehr. Es kann aber auch sein, dass man eine Endlosschleife produziert und der Server bis zum Sankt-Nimmerleins-Tag durchnudelt. Oder der Speicher voll ist und der Rechner sich mit einer Fehlermeldung verabschiedet.
2. Abbruchmöglichkeiten
Mal ganz abgesehen von der Endlosschleife gibt es auch noch andere Situationen, wo man eine Schleife vorab beenden möchte. Das gilt vor allem, wenn man nach einem bestimmten Wert sucht. Nehmen wir mal an, wir wollen ein Array durchlaufen und nach einem gewünschten Eintrag suchen. Wenn der gefunden wurde, soll die Schleife beendet werden.
break
<?php
$found = false;
$bla = array ('blubb', 'blubber', 'schwall', 'laber');
for ($i = 0; $i < count($bla); $i++)
{
if ($bla[$i] == 'schwall')
{
$found = $i;
break;
}
echo $bla[$i].'<br>';
}
?>
Erläuterung
In diesem Fall wird bei einem Treffer die Schleife mit break
beendet und der entsprechende Index des Arrays in einer
zusätzlichen Variablen gespeichert. So hat man später Zugriff auf den gesuchten Wert.
return
Dies setzt man vor allem bei Funktionen ein. Zu den Details komme ich gleich. Wichtig zu wissen ist erst
mal nur, dass return
einen Wert zurückliefert. Und damit wird jedweder folgender Code nicht mehr abgearbeitet.
<?php
...
for ($i = 0; $i < count($bla); $i++)
{
if ($bla[$i] == 'schwall')
{
return $i;
}
}
?>
3. Überspringen
Auch das ist möglich. Wenn man bestimmte Werte für die Verarbeitung nicht benötigt, so überspringt man sie mit continue
.
Das folgende Beispiel zeigt das.
<?php
$a = 4;
for ($i = 0; $i < 30; $i++)
{
if ($i < $a)
{
continue;
}
echo $i.'<br>';
}
?>
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt