(PHP 4, PHP 5, PHP 7)
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);
?>
Seien Sie nicht traurig, wenn Sie dies nicht oder nicht ganz verstehen. Sie können trotzdem Skripte - und wirklich leistungsfähige Skripte! - programmieren, ohne dieses "Feature" zu verwenden. Seit PHP 5.3.0 ist es möglich, statt dieses Hacks den goto-Operator zu verwenden.