The for statement can be said to be the most basic statement in the loop control part of PHP (and in many languages). The execution rules and basic usage of the for statement will not be discussed here. You can refer to the for statement section of the PHP manual. Its syntax is defined in the PHP manual as follows:
for (expr1; expr2; expr3)
statement
Let’s talk about several useful variations of the for statement.
1. Infinite loop
First of all, it is the infinite loop (also called "dead loop") that everyone knows. Since the empty expression null is syntactically valid, we can leave the three expressions of the for statement empty, which will have the effect of continuously executing nested for statements.
<?php
for (;;) {
//Place statements that need to be executed continuously
}
?>
Although some tasks will use infinite loops, most program tasks, especially the fields that PHP can involve, will add some conditions to terminate the loop when using infinite loops.
<?php
for (;;) {
//If it is 2199 AD, break out of the loop if (date('Y') == '2199') {
break;
}
}
?>
2. Use empty expressions
Next, let’s talk about using null syntax in the initialization statement expr1. The most common function of leaving expr1 blank is to complete more complex initialization work.
<?php
if (isset($i)) {
unset($i);
if ((int) date('') < 2008) {
$i = 0;
} else {
$i = 1;
}
} else {
$i =3;
}
for (;$i < 10;$i++) {
echo $i;
}
?>
In the same way, the iteration expression expr3 may also be left blank. This can also be used to write more complex iterations, such as calling different iterations according to different conditions.
Leaving the conditional statement expr2 in the for statement blank is the infinite loop mentioned above. Of course, you can also add some more complex conditions to determine when to jump out of the loop, which will not be repeated here.
3. Multiple loops
Using multiple loops to control multiple variables is also a feature that is often overlooked in the for statement. As in the example below, double loops are generally used in general tasks, and loops of three or more are generally of little significance.
<?php
for ($i = 0, $j = 10;$i <= 10;$i++, $j--) {
echo "$i + $j = 10rn";
}
?>
The above code will output:
0 + 10 = 10
1 + 9 = 10
2 + 8 = 10
3 + 7 = 10
4 + 6 = 10
5 + 5 = 10
6 + 4 = 10
7 + 3 = 10
8 + 2 = 10
9 + 1 = 10
10 + 0 = 10
4. More complex expressions
If the three expressions of the for statement are written more complexly, they can be used for optimization algorithms. You can even use a for statement without a loop body to complete some tasks. For example, to calculate accumulation or factorial:
<?php
//Calculate the cumulative result of 1-5, bin value to $j
for ($i = 1,$j = 0; $i <= 5;$j += $i++);
echo $j;
//Calculate the factorial result of 1-5, bin value to $j
for ($i = 1,$j = 1; $i <= 5;$j *= $i++);
echo $j;
?>
PHP uses the syntax of the C language and will also have the characteristics of C to a certain extent. For example, the powerful for loop statement is a typical example.