PHP Manual
Prev | Chapter 12. Control Structures | Next

# `do..while`

`do..while` loops are very similar to `while` loops, except the truth expression is checked at the end of each iteration instead of in the beginning. The main difference from regular `while` loops is that the first iteration of a `do..while` loop is guaranteed to run (the truth expression is only checked at the end of the iteration), whereas it's may not necessarily run with a regular `while` loop (the truth expression is checked at the beginning of each iteration, if it evaluates to `FALSE` right from the beginning, the loop execution would end immediately).

There is just one syntax for `do..while` loops:

    $i = 0;
    do {
       print $i;
    } while ($i>0);

The above loop would run one time exactly, since after the first iteration, when truth expression is checked, it evaluates to `FALSE` ($i is not bigger than 0) and the loop execution ends.

Advanced C users may be familiar with a different usage of the `do..while` loop, to allow stopping execution in the middle of code blocks, by encapsulating them with `do..while`(0), and using the `break` statement. The following code fragment demonstrates this:

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

         ...process i...

    } while(0);

Don't worry if you don't understand this right away or at all. You can code scripts and even powerful scripts without using this 'feature'.

Prev | Home | Next
`while` | Up | `for`