for loops are the most complex
loops in PHP. They behave like their C counterparts. The
syntax of a for loop is:
The first expression (expr1) is evaluated (executed) once
unconditionally at the beginning of the loop.
In the beginning of each iteration, expr2 is evaluated. If it evaluates
to TRUE, the loop continues
and the nested statement(s) are executed. If it evaluates to
FALSE, the execution of the
loop ends.
At the end of each iteration,
expr3 is evaluated (executed).
Each of the expressions can be empty. expr2 being empty means the loop
should be run indefinitely (PHP implicitly considers it as
TRUE, like C). This may not
be as useless as you might think, since often you'd want to
end the loop using a conditional
break statement instead of using the for truth expression.
Consider the following examples. All of them display
numbers from 1 to 10:
/* example 1 */ for ($i = 1; $i = 10; $i++) { print $i; } /* example 2 */ for ($i = 1;;$i++) { if ($i 10) { break; } print $i; } /* example 3 */ $i = 1; for (;;) { if ($i 10) { break; } print $i; $i++; } /* example 4 */ for ($i = 1; $i = 10; print $i, $i++); |
Of course, the first example appears to be the nicest
one (or perhaps the fourth), but you may find that being able
to use empty expressions in for
loops comes in handy in many occasions.
PHP also supports the alternate "colon syntax" for for loops.
Other languages have a foreach
statement to traverse an array or hash. PHP 3 has no such
construct; PHP 4 does (see foreach). In PHP 3, you
can combine while
with the
list() and each() functions to achieve the same
effect. See the documentation for these functions for an
example.