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:

      1
      2 $i = 0;
      3 do {
      4    print $i;
      5 } while ($i>0);
      6

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:

      1
      2 do {
      3     if ($i < 5) {
      4         print "i is not big enough";
      5         break;
      6     }
      7     $i *= $factor;
      8     if ($i < $minimum_limit) {
      9         break;
     10     }
     11     print "i is ok";
     12
     13      ...process i...
     14
     15 } while(0);
     16

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`