|
T u t o r i a l
|
|
PHP Tutorial > Kapitel 4: Schleifen
Antworten zu Fragen aus Kapitel 3:
1. Wie kann man Funktionen aufrufen?
Indem man den Funktionsnamen schreibt, eine Klammer aufmacht, die nötigen
Parameter angibt und die Klammer wieder schließt.
funktion($parameter1, $parameter2,...);
2. Wo kann man die Funktionsreferenz finden?
Zum Beispiel unter http://at.php.net/manual/en/index.php
3. In welche Reihenfolgen kann man Arrays sortieren?
Absteigend, aufsteigend, nach Alphabet / Nummern geordnet.
Vorgänge mehrmals wiederholen: Schleifen
Schleifen (engl. loop) sind Abläufe, die sich wiederholen und bestimmten
Code ausführen. Sie sind ein wichtiger Teil jeder Programmiersprache. Es gibt
verschiedene Schleifentypen.
Die While-Schleife
Tutorial_Kapitel4_Beispiel_1.php:
<?php
$zahl = 0;
while($zahl < 10) // Solang Zahl kleiner als 10, ausführen { $zahl = $zahl +1; echo "Die Zahl ist jetzt: ".$zahl.""; }
?>
|
Aufbau:
while(bedingung) { ... } In die Bedingung kommt das, was
die Schleife am Leben erhält. Ergibt die Bedingung ein falsches Ergebnis, also
wäre $zahl schon von Anfang an größer als 10, dann wäre die Schleife nicht
ausgeführt worden.
Da wir in der Schleife jedes mal $zahl um eins erhöhen, wird
die Schleife nach dem zehnten Mal unterbrochen. Soweit hat PHP dann schon den
echo Befehl zehn mal ausgeführt.
Eine Bedingung?
Die IF-Schleife reagiert ähnlich wie die While-Schleife. Sie schaut nach
ob die Bedingung Wahr ist und führt den Code darunter aus.
Falls ein Else-Block
an die IF-Schleife angehängt ist wird dieser bei einer Unwahren Bedingung
ausgeführt.
Eine Bedingung ergibt also für PHP Wahr oder Falsch.
Du kannst sogar eine Variablendeklaration als Bedingung einsetzen:
Tutorial_Kapitel4_Beispiel_2.php:
<?php
$zahl = 0;
if($zahl = 5) { echo "Die Zahl wurde erfolgreich auf 5 gesetzt: ".$zahl; } else { echo "Die Zahl konnte nicht auf 5 gesetzt werden: ".$zahl; }
?>
|
Da das Einsetzen von 5 in $zahl gelingen sollte, wird "Die Zahl wurde
erfolgreich auf 5 gesetzt: 5" herauskommen.
Ein ist gleich Zeichen bedeutet
immer, dass ein Wert zugewiesen wird.
Wenn man hier 2 ist gleich Zeichen
benutzen würde, hätte diese Schleife einen ganz anderen Sinn.
Deshalb ist auf
korrekte Zeichensetzung zu achten um Fehler zu vermeiden.
While-Schleife in Aktion
Tutorial_Kapitel4_Beispiel_3.php:
<?php
// mt_rand($zahl1, $zahl2) = Funktion, die eine Zufallszahl zwischen $zahl1 und $zahl2 zurückgibt. // array("schlüssel" => "wert") = Funktion, die ein Array erstellt
$einarray = array(); // Ein Array ohne Werte $einezahl = 0; $bis = mt_rand(10, 20);
while($einezahl < $bis) { $einarray[$einezahl] = mt_rand(100, 1000); $einezahl++; }
$einezahl = 0; $eintraegeimarray = sizeof($einarray);
while($einezahl < $eintraegeimarray) { echo $einarray[$einezahl]; $einezahl++; }
?>
|
2 Funktionen treten hier auf die noch nicht besprochen wurden: array()
und mt_rand().
Mit array() kann man
eine Variable als Array einstellen und mit Schlüsseln und Werten bestücken.
(Eine Andere Methode Werte in ein Array einzufügen.)
mt_rand() gibt eine Zufallszahl zwischen dem
ersten und dem zweiten Parameter.
Man kann das lästige "$variable = $variable + 1;" umgehen indem man
"$variable++;" schreibt.
Dies gilt auch für "$variable = $variable - 1;", "$variable--;";
Die Do-While-Schleife
Tutorial_Kapitel4_Beispiel_4.php:
<?php $einschoenertag = false; $i = 0; do { echo "Diese Nachricht erscheint nur einmal, wenn der Tag nicht schön ist. "; $i++; if($i > 10) { break; } } while($einschoenertag == true) ?>
|
Diese Schleife sieht etwas anders aus: zuerst kommt der Code, dann die
Bedingung.
Deswegen wird der Code innerhalb der "do" schleife auch mindestens
einmal ausgeführt bevor die Bedingung überprüft wird.
Wenn die Bedingung dann
Wahr ist, wird der Code wiederholt, Andernfalls nicht.
Diese Schleifenart ist
nicht äußerst wichtig und nur selten im Gebrauch.
Wichtige Elemente: Break, Continue
break; Unterbricht den Schleifenablauf vollständig. Damit
kannst Du unter anderem Endlosschleifen aufhalten.
continue;
Bricht den aktuellen Durchlauf ab und fängt einen neuen an.
Die For-Schleife
Die For-Schleife ist die umfangreichste und zugleich komplizierteste
Schleife.
for(angabe1;angabe2;angabe3) { ... }
Die For-Schleife
besteht aus 3 Elementen; man muss 3 Angaben machen.
Die erste Angabe wird ganz am Anfang ausgeführt.
Bei jedem Durchlauf wird die zweite Angabe auf Wahr oder Falsch geprüft. Also
muss die zweite Angabe eine Bedingung sein. Wenn sie wahr ergibt, wird der Code
in der Schleife ausgeführt und die dritte Angabe am Schluss ausgeführt.
In der ersten Angabe erstellt man meistens eine Variable vom Typ Zahl.
In der dritten Angabe erhöht man diese Zahl meistens um eins. (Mittels
$variable++;)
Im folgenden Beispiel wird ein Array mit 3 Werten erstellt. Die For-Schleife
schaut, wie viel Werte das Array hat und erhöht eine Zahlvariable bei jedem
durchlauf um eins.
Tutorial_Kapitel4_Beispiel_5.php:
<?php
$array[0] = "wert1"; $array[1] = "wert2"; $array[2] = "wert3";
for($i=0;$i<sizeof($array);$i++) { echo $array[$i].""; }
?>
|
Nochmal zur Erläuterung:
For-Schleifen besitzen 3 Teile die mit Semikolon getrennt werden.
$i=0 - Wird beim "Start" der For-Schleife einmalig ausgeführt.
$i<sizeof($array) - Ist eine Bedingung die Wahr sein muss wenn die For-Schleife
weiterlaufen soll.
$i++ - Wenn das Ausführen des Codes innerhalb der For-Schleife abgeschlossen
ist, wird dieser Befehl ausgeführt.
Der Vorgang im Beispiel kann genauso mit der While-Schleife vollbracht werden.
Die Foreach-Schleife
Die Foreach-Schleife haben wir schon im vorherigen Kapitel gesehen, als wir
ein Array komplett auslesen wollten. Sie ist speziell für Arrays gemacht.
Tutorial_Kapitel4_Beispiel_6.php:
<?php
$array[] = "eins"; $array[] = "zwei"; $array[] = "drei";
foreach($array as $key => $value) { echo "Schlüssel: ".$key." | Wert: ".$value.""; }
?>
|
foreach($array as $value) oder foreach($array as $key => $value)
Fragen zu diesen Kapitel:
1. Was passiert wenn ich "while(true)" ausführe? Wie kann man
Endlosschleifen aufhalten?
2. Zähle die vier Schleifenarten auf.
3. Welche Schleife ist auf Arrays spezialisiert?
Antworten in Kapitel 5
Alle Beispiele von Kapitel 4
|
|
|