La boucle while contient essentiellement comme argument une condition d'arrêt toujours évaluée avant chaque itération. L'initialisation et l'incrémentation devront être explicitées dans le code.

while (condition)
{
  //bloc d'instructions...
}

i = 0;
while(i < 10)
{
  echo 'valeur de i : '.$i;
  $i++;
}

A l'instar de la boucle for, while possède une instruction de fin endwhile.

while (condition):
  bloc d'instructions...
endwhile;

$fin = true;
$i = 100;
while($fin):
  if($i % 5 && $i <=50) $fin = false;
  $i--;
endwhile;

la boucle do...while contrairement à while...endwhile évalue la condition après chaque itération.

do
{
  //bloc d'instructions...
}
while (condition);

Littéralement, ces boucles accomplissent des opérations tant qu'une condition est vraie (faire... tant que...).

Exemple [voir]
<?php
  $nb = 0;
  $page = 8;
  $total = 256;

  if ($total % $page == 0) $inc = $total / $page;

  $resultat = '<table><tr><th style="font-size:14pt" colspan="' . $page . '">'
          . 'Tableau de caractères ISO-8859-1</th></tr><tr>';

  $i = 0;

  while($i < $page)
  {
    $limite = $nb + $inc;
    $resultat .= '<td><table border = "1">'
                . '<tr><th>Index</th><th>caractère</th><th>Entité</th></tr>';
    $j = $nb;

    do
    {
      $resultat .= '<tr><th>' . $j . '</th><td>' . chr($j)
               . '</td><td>&#' . $j . ';</td></tr>';
      $j++;
    }
    while($j <= $limite - 1);

    $resultat .= '</table></td>';
    $nb = $limite;
    $i++;
  }

  $resultat .= '</tr></table>';

  echo $resultat;
?>