forfor

(PHP 4, PHP 5, PHP 7)

for循环是 PHP 中最复杂的循环结构。它的行为和 C 语言的相似。for循环的语法是:

for (expr1; expr2; expr3)
    statement

第一个表达式(expr1)在循环开始前无条件求值(并执行)一次。

expr2在每次循环开始前求值。如果值为TRUE,则继续循环,执行嵌套的循环语句。如果值为FALSE,则终止循环。

expr3在每次循环之后被求值(并执行)。

每个表达式都可以为空或包括逗号分隔的多个表达式。表达式expr2中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。expr2为空意味着将无限循环下去(和 C 一样,PHP 暗中认为其值为TRUE)。这可能不像想象中那样没有用,因为经常会希望用有条件的break语句来结束循环而不是用for的表达式真值判断。

考虑以下的例子,它们都显示数字 1 到 10:

<?php


for ($i = 1; $i <= 10; $i++) {
    echo $i;
}



for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}



$i = 1;
for (;;) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}



for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

淘宝 adsense 商品推荐

google adsense admoi联盟推广 站长变现

价格:10元

当然,第一个例子看上去最简洁(或者有人认为是第四个),但用户可能会发现在for循环中用空的表达式在很多场合下会很方便。

PHP 也支持用冒号的for循环的替代语法。

for (expr1; expr2; expr3):
    statement;
    ...
endfor;

有时经常需要像下面这样例子一样对数组进行遍历:

<?php

$people = Array(
        Array('name' => 'Kalle', 'salt' => 856412), 
        Array('name' => 'Pierre', 'salt' => 215863)
        );

for($i = 0; $i < count($people); ++$i)
{
    $people[$i]['salt'] = rand(000000, 999999);
}
?>

以上代码可能执行很慢,因为每次循环时都要计算一遍数组的长度。由于数组的长度始终不变,可以用一个中间变量来储存数组长度以优化而不是不停调用count()

<?php
$people = Array(
        Array('name' => 'Kalle', 'salt' => 856412), 
        Array('name' => 'Pierre', 'salt' => 215863)
        );

for($i = 0, $size = count($people); $i < $size; ++$i)
{
    $people[$i]['salt'] = rand(000000, 999999);
}
?>

淘宝 云主机 商品推荐

西部数码香港空间国内云虚拟主机 支持php asp.net网站sql数据库

价格:55元