for
for
循环是 PHP 中最复杂的循环结构。第一个表达式在循环开始前无条件求值(并执行)一次。第二个表达式在每次循环开始前求值。如果值为 true
,则继续循环,执行嵌套的循环语句。如果值为 false
,则终止循环。第三个表达式在每次循环之后被求值(并执行)。
<?php
for ($i = 1; $i < 10; $i++) {
//
}
第二个表达式为空意味着将无限循环下去。
<?php
for ($i = 1;; $i++) {
if ($i > 10) {
break;
}
}
每个表达式都可以为空。
<?php
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
$i++;
}
每个表达式都可以包括逗号分隔的多个表达式。第二个表达式中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。
<?php
for ($i = 1, $j = 0; $j == 0, $i < 10; $j += $i, print $i, $i++) {
//
}
// 123456789
由于数组的长度始终不变,可以用一个中间变量来储存数组长度以优化而不是不停调用 count()
。
<?php
$foo = [2, 4, 5];
for ($i = 0, $count = count($foo); $i < $count; $i++) {
$foo[$i] = mt_rand();
}