PHP - Grundlagen - Schleifen
1. Einführung
Schleifen werden eingesetzt, um einen bestimmten Programmierteil mehrmals zu durchlaufen. Dabei können Variablenwerte flexibel geändert werden. Besonders wichtige Anwendungsgebiete sind Arrays (da war doch was?) und Datenbankabfragen (da kommt noch was).
2. for
-Schleife
Die for
-Schleife stellt meiner Meinung nach die verständlichste und klarste Form dar. Deshalb benutze ich sie
wahrscheinlich auch, wo ich nur kann. Sie sollte dann eingesetzt werden, wenn uns alle notwendigen Parameter bekannt sind. Ich
nenne diese Form daher einfach mal "bestimmte" Schleife. Der Aufbau sieht wie folgt aus:
for ([Ausgangssituation]; [Bedingung]; [Anweisung])
Das folgende Beispiel gibt einfach die Zahlen von 0 - 9 aus:
<?php
for ($i = 0; $i < 10; $i++)
{
echo $i.'<br>';
}
?>
Erinnert ihr euch noch beim Thema Arraytypen an das erste Beispiel? Nun, so etwas kann man
wunderbar mit einer for
-Schleife abarbeiten:
<?php
$name[0] = 'Claudia Mustermann';
$name[1] = 'Dieter Hinz';
$name[2] = 'Peter Kunz';
for ($i = 0; $i < count ($name); $i++)
{
echo ($i + 1).' '.$name[$i].'<br>';
}
?>
Wichtig ist hierbei der Befehl count
. Er gibt die Anzahl der Array-Einträge wieder, also in unserem Fall 3. Das
erklärt auch, warum der erste numerische Index eines Arrays immer den Wert 0 hat. Denn count
ist immer um 1 größer,
als der letzte numerische Index. Alternativ kann man auch sizeof
benutzen, das ist dasselbe in grün.
3. while
-Schleife
Die while
-Schleife stellt die einfachste Form dar. Sie wird solange ausgeführt, wie eine Bedingung wahr ist. Ich
nenne sie daher eine "unbestimmte" Schleife, da man nicht genau weiß, wann sie abgebrochen wird. Die Syntax baut sich so auf:
while ([Bedingung])
Dieser Typ eignet sich besonders in Verbindung mit Datenbanken, wo die Zahl der ausgegebenen Datensätze entsprechend einer Abfrage
unbekannt ist. Ein anderes Gebiet der while
-Schleife ist das zeilenweise Auslesen von Text-Dateien. Die folgenden
Beispiele sind natürlich nicht funktionsfähig, dazu kommen wir bei den Tutorials.
<?php
/* Entsprechend einer SQL-Abfrage werden alle
gefundenen Datensätze in ein Array geschrieben */
while ($row = mysql_fetch_assoc (result))
/* Liest eine Textdatei zeilenweise ein */
while ($line = fgets ($file))
?>
4. do
...while
-Schleife
Dieser Schleifentyp arbeitet genauso wie while
, bis auf zwei Unterschiede. Die Syntax ist ein wenig anders und somit
auch das Verhalten. Wenn bei einer while
-Schleife schon die erste Bedingung falsch ist, bricht sie sofort ab. Bei
do while
dagegen wird die Schleife mindestens einmal(!) ausgeführt. Ich persönlich muss gestehen, dass ich noch
kein einziges Mal damit gearbeitet habe. Warum? Habe ich nie gebraucht.
<?php
$i = 0;
/* keine Ausgabe, da Bedingung von
vornherein falsch */
while ($i > 0)
{
echo $i;
}
/* gibt $i einmal aus */
do
{
echo $i;
}
while ($i > 0);
?>
5. foreach
-Schleife
Die Variante dient einzig und allein der Verarbeitung von Arrays und Objekten, und das macht sie ganz hervorragend. Im folgenden Beispiel werden alle assoziativen Indizes des Arrays und deren Werte ausgegeben.
<?php
$adresse['name'] = 'Claudia Mustermann';
$adresse['straße'] = 'Musterstraße 0';
$adresse['plz'] = '00000';
$adresse['ort'] = 'Musterstadt';
$adresse['mail'] = 'info@mustermann.de';
foreach($adresse as $key => $value)
{
echo $key.'-'.$value.'<br>';
}
?>
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt