(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";
} while (0);
?>
Es ist möglich, statt dieses Hacks den goto
-Operator zu verwenden.