do-while

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

Os laços do-while é muito similar aos laços while, com exceção que a expressão de avaliação é verificada ao final de cada iteração em vez de no começo. A maior diferença para o laço while é que a primeira iteração do laço do-while sempre é executada (a expressão de avaliação é executada somente no final da iteração), considerando que no laço while não é necessariamente executada (a expressão de avaliação é executada no começo de cada iteração, se avaliada como false logo no começo, a execução do laço será abortada imediatamente).

Só há uma sintaxe para o laço do-while:

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

O laço acima será executado somente uma vez, pois após a primeira iteração, quando a expressão de avaliação for executada, resultará em false ($i não é maior que 0) e a execução do laço será encerrada.

Usuário avançados de C devem estar familiarizados com um uso diferente do laço do-while, que permite parar a execução no meio do bloco de códigos, encapsulando-os em um do-while (0), e usando o break . O código a seguir demonstra isso:

<?php
do {
    if ($i < 5) {
        echo "i is not big enough";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "i is ok";

    /* process i */

} while (0);
?>

É possível usar o goto ao invés desse hack.