php:phplektion04
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
php:phplektion04 [25.10.2011 08:29] – Stefan Gaum | php:phplektion04 [07.11.2014 13:15] (aktuell) – gelöscht Stefan Gaum | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | [[php: | ||
- | |||
- | ====== PHP Lektion 4 ====== | ||
- | |||
- | |||
- | ====== Schleifen ====== | ||
- | |||
- | Verschiedene Vorgänge benötigen mehrere Durchgänge, | ||
- | |||
- | ===== while-Schleifen ===== | ||
- | |||
- | Zum Beispiel kann man, um die Zahlen 1 bis 10 auszugeben folgenden PHP-Code verwenden: | ||
- | |||
- | <?php | ||
- | echo "1 <br />"; | ||
- | echo "2 <br />"; | ||
- | echo "3 <br />"; | ||
- | echo "4 <br />"; | ||
- | echo "5 <br />"; | ||
- | echo "6 <br />"; | ||
- | echo "7 <br />"; | ||
- | echo "8 <br />"; | ||
- | echo "9 <br />"; | ||
- | echo "10 <br />"; | ||
- | ?> | ||
- | |||
- | Der verwendete Befehl ist stets derselbe ('' | ||
- | |||
- | <?php | ||
- | $i = 1; | ||
- | while ($i <= 10) { | ||
- | echo $i . "< | ||
- | $i++; // Wert wird um 1 erhöht | ||
- | } | ||
- | ?> | ||
- | |||
- | Dabei werden alle Befehle im **Schleifenblock** (innerhalb der geschweiften Klammern) solange wiederholt, wie die Bedingung im Argument ($i < = 10) wahr ist. Das Beisplie zeigt eine **kopfgesteuerte** while-Schleife. | ||
- | |||
- | '' | ||
- | |||
- | {{: | ||
- | |||
- | Erstelle eine Seite mit Formular und ein php-Skript, mit der man durch Eingabe einer Zahl bestimmen kann, bis zu welcher Zahl das Skript " | ||
- | |||
- | |||
- | ==== Fußgesteuerte while-Schleife ==== | ||
- | |||
- | Manchmal möchte man erreichen, dass der Schleifenblock mindestens einmal durchlaufen wird, sogar dann, wenn die Bedingung von Beginn an nicht erfüllt ist. Dies kann man mit einer fußgesteuerten while-Schleife erreichen: | ||
- | |||
- | <?php | ||
- | $i = 11; | ||
- | do { | ||
- | echo $i . "< | ||
- | $i++; // Wert wird um 1 erhöht | ||
- | } while ($i <= 10); | ||
- | ?> | ||
- | |||
- | Hier wird die Bedingung am Ende überprüft, | ||
- | |||
- | {{: | ||
- | |||
- | Ändere dein Skript von oben so ab, dass es eine fußgesteuerte Schleife verwendet. | ||
- | |||
- | ==== Continue und Break ==== | ||
- | |||
- | Der Verlauf einer Schleife kann neben der Schleifenbedingung noch anders gesteuert werden. | ||
- | |||
- | **break** - beendet an der aktuellen Stelle die Schleife und führt dann den folgenden PHP-Code aus, so als würde die Schleifenbedingung false ergeben (selbst wenn dies nicht der Fall wäre). | ||
- | |||
- | <?php | ||
- | while (...) { | ||
- | | ||
- | |||
- | break; // ---> | ||
- | // | ||
- | // | ||
- | } | ||
- | // <--- | ||
- | ?> | ||
- | |||
- | **continue** - überspringt den aktuellen Schleifendurchlauf und beginnt mit dem nächsten. Er springt dabei zum Ende des Schleifenrumpfs. Für For-Schleifen bedeutet dies auch, dass die Durchlaufanweisung ausgeführt wird (für den nächsten Durchlauf), für Do-While-Schleifen bedeutet dies, dass die Schleifenbedingung geprüft wird (und auch für While-Schleifen, | ||
- | |||
- | <?php | ||
- | // keine Endlosschleife wie vielleicht vermutet | ||
- | do { // < - - - | ||
- | // | Nicht wie erwartet | ||
- | // | | ||
- | continue; // ---> | ||
- | // | | ||
- | // | ||
- | // <--- | ||
- | } while(false); | ||
- | ?> | ||
- | |||
- | Eine if-Abfrage kann auf diese Weise nicht verlassen (oder sogar neu durchlaufen) werden da eine if-Abfrage kein Schleifenkonstrukt ist. Sowas wie if (...) { .... break; ...} wird nur klappen wenn das ganze in einer Schleife steht und somit das break auf die Schleife angewendet werden kann. | ||
- | |||
- | {{: | ||
- | |||
- | Bearbeite das folgende Beispiel und wende es in deinem variablen Zähler an. | ||
- | |||
- | <?php | ||
- | $i = 11; | ||
- | do | ||
- | { | ||
- | if ( $i > 10 ) | ||
- | { | ||
- | echo "i ist bereits größer als 10"; | ||
- | break; | ||
- | } | ||
- | |||
- | echo $i . "< | ||
- | $i++; // Wert wird um 1 erhöht | ||
- | } while ($i <= 10); | ||
- | ?> | ||
- | |||
- | ===== for-Schleifen ===== | ||
- | |||
- | Eine for-Schleife kann man immer dann einsetzen, wenn man zuvor bereits weiß, wie oft ein Vorgang wiederholt werden soll: | ||
- | |||
- | <?php | ||
- | for ($i = 1; $i <= 10; $i++) | ||
- | { | ||
- | echo $i . "< | ||
- | } | ||
- | |||
- | For-Schleifen kommen seltener zum Einsatz, da Sie unflexibler sind als while-Schleifen. | ||
- | |||
- | {{: | ||
- | |||
- | Schreibe dein Skript als for-Schleife. Ändere das Programm so, dass die Schleife unabhängig von der Formulareingabe bei 100 verlassen (break) wird und die Zahlen von 31 bis 40 überspringt (continue). | ||
- | |||
- | [[php: | ||
php/phplektion04.1319531350.txt.gz · Zuletzt geändert: 25.10.2011 08:29 von Stefan Gaum