PHP Manual
Prev | Chapter 11. 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 guarenteed 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`