(PHP 4, PHP 5, PHP 7)
  Los bucles do-while son muy similares a los
  bucles while, excepto que la expresión verdadera es
  verificada al final de cada iteración en lugar que al principio.
  La diferencia principal con los bucles while es
  que está garantizado que corra la primera iteración de un bucle 
  do-while (la expresión verdadera sólo es verificada al
  final de la iteración), mientras que no necesariamente va a correr con un
  bucle while regular (la expresión verdadera es
  verificada al principio de cada iteración, si se evalúa como
  FALSE justo desde el comienzo, la ejecución del
  bucle terminaría inmediatamente).
 
Hay una sola sintaxis para bucles do-while:
<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>
   El bucle de arriba se ejecutaría exactamente una sola vez, ya que después de la primera 
   iteración, cuando la expresión verdadera es verificada, se evalúa como
   FALSE ($i no es mayor que 0) y termina la ejecución
   del bucle.
 
Los usuarios avanzados de C pueden estar familiarizados con un uso distinto del bucle do-while, para permitir parar la ejecución en medio de los bloques de código, mediante el encapsulado con do-while (0), y utilizando la sentencia break. El siguiente fragmento de código demuestra esto:
<?php
do {
    if ($i < 5) {
        echo "i no es lo suficientemente grande";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "i está bien";
    /* procesar i */
} while (0);
?>
No se preocupe si no se entiende esto completamente o en absoluto. Se pueden codificar scripts e incluso scripts potentes sin usar esta 'característica'. Desde PHP 5.3.0, es posible utilizar el operador goto en lugar de este hack.