do-while
(PHP 4, PHP 5, PHP 7, PHP 8)
do-while
-Schleifen sind sehr ähnlich zu
while
-Schleifen, außer dass der Wahrheitsausdruck erst am
Ende eines jeden Durchlaufs statt zu dessen Beginn geprüft wird. Der
Hauptunterschied zu einer normalen while
-Schleife ist, dass
die do-while
-Schleife garantiert mindestens einmal
durchlaufen wird (Der Wahrheitsausdruck wird ja nur am Ende jeden Durchlaufs
geprüft), wohingegen es nicht zwingend ist, dass eine reguläre
while
-Schleife immer ausgeführt wird (hier wird der
Wahrheitsausdruck bereits zu Beginn eines jeden Durchlaufs überprüft.
Evaluiert er dabei zu false
, wird die Verarbeitung der Schleife sofort
abgebrochen).
Es gibt nur eine Syntax für do-while
-Schleifen:
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
Die obige Schleife wird exakt einmal durchlaufen, da nach dem ersten Durchlauf,
wenn der Wahrheitsausdruck geprüft wird, dieser false
ergibt
($i ist nicht größer als 0), so dass die
Schleifenausführung beendet wird.
Fortgeschrittenen C-Programmierern ist möglicherweise eine etwas andere
Verwendung von do-while
-Schleifen bekannt, die es erlaubt,
die Ausführung in der Mitte des Codeblocks zu unterbrechen. Dies wird durch
ein Kapseln in do-while
(0) und die Verwendung des break
-Statements
erreicht. Das folgende Codefragment demonstriert dieses Verhalten:
<?php
do {
if ($i < 5) {
echo "i ist nicht groß genug";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i ist ok";
/* i verarbeiten */
} while (0);
?>
Es ist möglich, statt dieses Hacks den goto
-Operator
zu verwenden.