Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
php:loops [2017/03/02 10:19] webproducer |
php:loops [2021/08/02 08:21] (aktuell) webproducer Vorzeitiger Abbruch von Schleifen in PHP |
||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Wie in jeder anderen Programmiersprache auch bietet PHP die Möglichkeit, Codeteile durch den Einsatz von Schleifen mehrfach auszuführen. Hierfür stehen die folgenden Schleifen zur Verfügung: | Wie in jeder anderen Programmiersprache auch bietet PHP die Möglichkeit, Codeteile durch den Einsatz von Schleifen mehrfach auszuführen. Hierfür stehen die folgenden Schleifen zur Verfügung: | ||
- | ===== while-Schleife ===== | + | ===== 1. Die foreach-Schleife ===== |
- | Bei der while-Schleife wird vor der Durchführung der Anweisung die Durchführbedingung geprüft. Die Schleife läuft nur durch, solange die Bedingung WAHR ist. | + | Mit der foreach-Schleife kann man durch Arrays und Objekte iterieren. Wenn das Array leer ist wird die foreach-Anweisung nicht ausgeführt. Da in diesem Falle auch kein Fehler geworfen wird ist eine zusätzliche Überprüfung des Arrays beispielsweise mit if( Count( $Digits ) > 1 ) nicht notwendig. Allerdings sollte sichergestellt sein, dass es sich wirklich um einen Parameter vom Dateityp "Array" oder "object" handelt. Andernfalls wird ein PHP-Fehler geworfen. |
- | + | ||
- | **Beispiel:** | + | |
<code php> | <code php> | ||
- | $i = 0; | + | $digits = [0, 1, 2, 3, 4]; |
- | while( $i < 5 ) | + | if( is_array( $digits ) ) |
{ | { | ||
- | echo $i++, " "; | + | foreach( $digits as $digit ) |
+ | { | ||
+ | echo $digit, " "; | ||
+ | } | ||
} | } | ||
</code> | </code> | ||
- | ===== do-while-Schleife ===== | + | ---- |
- | Da bei der while-Schleife die Durchführbedingung erst am Ende überprüft wird, läuft sie mindestens einmal durch. Auch diese Schleife läuft nur durch, solange die Bedingung WAHR ist. | + | ===== 2. Die for-Schleife ===== |
- | + | ||
- | <code php> | + | |
- | $i = 0; | + | |
- | + | ||
- | do | + | |
- | { | + | |
- | echo $i++, " "; | + | |
- | } while ( $i < 5 ); | + | |
- | + | ||
- | </code> | + | |
- | + | ||
- | ===== for-Schleife ===== | + | |
Die for-Schleife besteht aus 3 Teilen: | Die for-Schleife besteht aus 3 Teilen: | ||
Zeile 47: | Zeile 36: | ||
</code> | </code> | ||
- | ===== foreach-Schleife ===== | + | ---- |
- | Mit der foreach-Schleife kann man durch Arrays und Objekte iterieren. Wenn das Array leer ist wird die foreach-Anweisung nicht ausgeführt. Da in diesem Falle auch kein Fehler geworfen wird ist eine zusätzliche Überprüfung des Arrays beispielsweise mit if( Count( $Digits ) > 1 ) nicht notwendig. Allerdings sollte sichergestellt sein, dass es sich wirklich um einen Parameter vom Dateityp "Array" oder "object" handelt. Andernfalls wird ein PHP-Fehler geworfen. | + | ===== 3. Die while-Schleife ===== |
+ | |||
+ | Bei der while-Schleife wird vor der Durchführung der Anweisung die Durchführbedingung geprüft. Die Schleife läuft nur durch, solange die Bedingung WAHR ist. | ||
+ | |||
+ | **Beispiel:** | ||
<code php> | <code php> | ||
- | $digits = [0, 1, 2, 3, 4]; | + | $i = 0; |
- | if( is_array( $digits ) ) | + | while( $i < 5 ) |
{ | { | ||
- | foreach( $digits as $digit ) | + | echo $i++, " "; |
- | { | + | |
- | echo $digit, " "; | + | |
- | } | + | |
} | } | ||
</code> | </code> | ||
- | ===== Ergebnis ===== | + | ---- |
+ | |||
+ | ===== 4. Die do-while-Schleife ===== | ||
+ | |||
+ | Da bei der while-Schleife die Durchführbedingung erst am Ende überprüft wird, läuft sie mindestens einmal durch. Auch diese Schleife läuft nur durch, solange die Bedingung WAHR ist. | ||
+ | |||
+ | <code php> | ||
+ | $i = 0; | ||
+ | |||
+ | do | ||
+ | { | ||
+ | echo $i++, " "; | ||
+ | } while ( $i < 5 ); | ||
+ | |||
+ | </code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Ergebnis der oben aufgeführten 4 Schleifen ===== | ||
Das Ergebnis ist bei allen 4 Beispielen das gleiche: | Das Ergebnis ist bei allen 4 Beispielen das gleiche: | ||
<code>0 1 2 3 4 </code> | <code>0 1 2 3 4 </code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Vorzeitiger Abbruch von Schleifen in PHP ===== | ||
+ | |||
+ | Es gibt 3 Anweisungen, mit denen die Durchführung der oben genannten Schleifen vorzeitig abgebrochen werden können: | ||
+ | |||
+ | * continue: Der aktuelle Schleifenvorgang wird abgebrochen und die Schleife wird neu aufgerufen | ||
+ | * break: Die aktuelle Schleife wird komplett abgebrochen | ||
+ | * return (nur innerhalb von Funktionen) Die gesamte Funktion wird abgebrochen. Somit wird die Schleife ebenfalls nicht mehr weiter ausgeführt. | ||