PHP – Schleifen
Schleifen sind ein Herzstück der Programmsteuerung. Mit ihnen wird angegeben,
wie oft
ein Programmstück ausgeführt bzw. wiederholt werden soll. Die erste Schleife, die wir in
PHP verwenden – die while-Anweisung – bewirkt, dass eine Anweisung wiederholt wird, so
lange die Bedingung erfüllt ist, der Ausdruck also true zurückgibt. Der Ausdruck wird vor jedem
Schleifendurchlauf geprüft. Die Struktur der while-Schleife ist vergleichbar mit der if-Anweisung.
Die Verwendung der while-Schleife
Die while-Schleife wird so lange ausgeführt, wie eine bestimmte Bedingung zutrifft. In der
Regel arbeitet man bei der while-Schleife mit einem internen Wert, der zunächst in eine Variable
geschrieben wird. Das schafft die Bedingung für die Schleife. Generell wird die while-Schleife
folgendermaßen geschrieben:
while (Bedingung) {Anweidung;}
Probieren wir die while-Anweisung anhand eines einfachen Scripts, indem wir ein neus
Dokument beginnen und die üblichen HTML-Tags eingeben.
Fügen wir in den Body-Container die PHP-Tags <?php und?> ein.
Schreibe dann zwischen die PHP-Tags:
<?php
$i=1
while($i<10)
{
echo ($I * $I)."<br>";
$i + +;
}
?> |
Damit setzen wir die Variable $i und reisen ihr den Wert 1 zu. Dann sagen wir in der while-Schleife:
So lange $i kleiner als 10 ist, soll der Wert mit sich selbst multipliziert werden; mit echo werden die
Ergebnisse der Anweisung ausgegeben. Entscheidend ist die
Anweisung $i ++. Damit wird der Wert jeweils um eins hochgezählt oder inkrementiert.
Der Prozess setzt sich fort, bis $i größer als 10 ist. An diesem Punkt endet die Schleife.
Speichern wir das Dokument als PHP-Datei und rufen es im Browser auf.
Die Verwendung der for-Anweisung
Während die while-Anweisung durchlaufen wird, dis der Ausdruck false ergibt, wird die
for-Anweisung eingesetzt, um eine Anweisung so oft auszuführen, wie man es im Code
angibt. Sie mögen die for-Anweisung von der Syntax her etwas komplizierter finden, dafür
ist sie aber in gewisser Weise auch wieder leichter zu handhaben. Wir werden feststellen,
dass in manchen Fällen die while-Anweisung besser passt und in manchen Fällen die
for-Anweisung. Die generell Syntax ist die folgende:
<?php
for (Variablenzuweisung/Schleifenbedingung1; Ausdruck2;Ausdruck3)
{Anweisung;
}
|
Wir sehen, die Ausdrücke in den Klammern werden durch Semikolon getrennt. Der erste Ausdruck
initiiert in der Regel die Variable, der zweite Ausdruck prüft, ob die Anweisungen ausgeführt werden
oder nicht, der dritte Ausdruck wird immer dann ausgeführt, wenn die Prüfung der Bedingung true
ergeben hat. In geschweiften Klammern folgt dann wie üblich der Block mit der/den Anweisungen
Wir haben oben bereits über Arrays gesprochen. Eine von vielen Möglichkeiten, eine for- Anweisung
zu benutzen, ist beispielsweise die Anweisung, alle Elemente eines Arrays ausgeben zu lassen.
Probieren wir die for-Anweisung in diesem Zusammenhang:
- Öffnen wir in unserem Texteditor ein neues Dokument.
- Geben wir die Standard-HTML-Tags sowie die PHP-Tags ein.
- Erstellen wir ein beliebiges Array oder orientieren uns am Listing 3.8 Hier heißt die Array-Liste $fotos.
- Nun schreiben wir die for-Schleife:
for ($n = 0; $n<count($fotos); $n+ +)
{
echo "$fotos[n]";
}
?> |
Insgesamt sieht das Script folgendermaßen aus:
<html><head>
<title>Formularart</title>
</head><body>
<?php
$fotos[]="Sommer";
$fotos[]="Herbst";
$fotos[]="Winter";
for ($n=0; $n<count($fotos); $n++)
{
echo "$fotos[$n]<br>";
}
?>
</body></html> |
Listing 3.8: Das Script mit einer for-Schleife, um auf die Elemente eines Arrays zuzugreifen.
Speichern wir das Script und öffnen es im Browser. Das Ergebnis müsste dem Bild 3.24 entsprechen.
| |
| |
| |
http://localhost/index.php |
|
|
| |
Sommer
Herbst
Winter |
|
|
Bild 3.24: Die Ausgabe der Array- Elemente im Browser
Erläuterung der for-Schleife
Um das Verständnis für for-Schleife etwas zu vertiefen, werden wir das Script Listin 3.8 noch
einmal genauer betrachten. Zunächst wird das Array $fotos erstellt. Anschließend wird die Schleife
durchlaufen. Mit for ($n = 0; $n<count($fotos); $n+ +) sagen wir PHP folgendes:
Setzen die Variable $n=0 für den ersten Durchlauf der Schleife. Prüfe bei jeden Schleifendurchlauf
die Bedingung $n<count($fotos) – also ob $n kleiner ist als die Anzahl der Elemente im Array $fotos.
Im Beispiel sind dies 3 Elemente. Mit $n+ + wird $n nach jedem Schleifendurchlauf um eins erhöht.
Beachten wir, dass diese Argumente der for-Schleife mit dem Semikolon getrennt werden.
Wenn die formulierte Bedingung erfüllt ist (wahr), wird der Anweisungsblock durchlaufen:
(echo "$fotos[$n]<br>";). Beim ersten Aufrufen der Schleife wird $n=0 gesetzt, sodass die Bedingung erfüllt ist (0<3).
Der Anweisungsblock wird ausgeführt – also (echo “$fotos[$n]<br>“;) – und somit das nullte
Element des Arrays $fotos ausgegeben.
Nachdem der Anweisungsblock abgearbeitet wurde, wird mit $n+ + $n um eins erhöht - $n
ist dann also 1. Anschließend wird die Bedingung erneut getestet. Dieser Vorgang wiederholt sich
so lange, bis die Bedingung nicht mehr erfüllt ist – also $n größer oder gleich count($fotos) ist.
In diesem Fall werden die‚ Befehle ausgeführt, die wir im Script nach der Schleife angegeben haben. Achten wir darauf, die Schleifenbedingungen so zu formulieren, dass sie auch irgendwann nicht
mehr erfüllt wird. Eine for-Schleife in der folgenden Form würde unendlich oft durchlaufen werden:
for($n=0; $n>0; $n+ +).
Wir können den Schleifenzähler auch innerhalb des Anweisungsblocks der Schleife verändern.
Das folgende Scriptfragment gibt nur jedes zweite Element eines Arrays aus, da der Zähler in
der Schleife auch noch einmal erhöht wird:
for($n=0; $n<count ($fotos); $n+ +)
{
echo "$fotos[$n]<br>";
$n+ +;
}
|
Nicht nur den Schleifenzähler können wir während des Anweisungsblocks verändern,
sondern in Grenzen auch Bedingungen. Wenn wir eine Schleife haben, die 10-mal
durchlaufen werden soll, aber es einen Ausnahmefall gibt, bei dem die schleife
30-Mal durchlaufen werden soll, können wir diese Bedingung im Anweisungsblock
einfügen. Die Schleife könnte dann so aussehen:
$max=10;
for($n=0; $n<$max; $n+ +)
{
echo " $n <br>";
if($n= = 8) {$max=30;}
}
|
Dieses kleine Beispiel ist nicht unbedingt sinnvoll, da $n immer den Wert 8 annimmt und
damit die Bedingung der if-Anweisung erfüllt ist. Aber es geht hier darum, dass wir sehen,
dass auf die Bedingung auch während des Abarbeitens der Schleife Einfluss genommen
werden kann.
Kleiner Hinweis: Wir bieten auch ein Pagrenkservice an. <<Keine Angst anmelden kostet NIX!>>
RANKING CHARTS
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20
|