do-while

(PHP 4, PHP 5, PHP 7, PHP 8)

Las bucles do-while se parecen mucho a las bucles while, pero la expresión es evaluada al final de cada iteración en lugar de al principio. La principal diferencia con respecto a la bucle while es que la primera iteración de la bucle do-while siempre se ejecuta (la expresión solo se evalúa al final de la iteración), lo cual no ocurre cuando se utiliza una bucle while (la condición se verifica al inicio de cada iteración, y si resulta false desde el principio, la bucle se detendrá de inmediato).

Solo existe una sintaxis posible para las bucles do-while:

<?php
$i
= 0;
do {
echo
$i;
} while (
$i > 0);
?>

La bucle anterior solo se ejecutará una vez, ya que cuando la expresión es evaluada, resulta false (ya que la variable $i no es mayor que 0) y la ejecución de la bucle se detiene.

Los usuarios familiarizados con C están acostumbrados a un uso diferente de las bucles do-while, que permite detener la ejecución de la bucle en medio de las instrucciones, encapsulando en un do-while(0) la función break. El siguiente código muestra un uso posible:

<?php
do {
if (
$i < 5) {
echo
"i no es suficientemente grande";
break;
}
$i *= $factor;
if (
$i < $minimum_limit) {
break;
}
echo
"i es bueno";

/* ...procesamiento de i... */

} while (0);
?>

Es posible utilizar el operador goto en lugar de este truco.