PHP教程

PHP for语句

for 循环是 PHP 中最复杂的循环结构,它的行为和 C 语言的相似,用于重复执行一段代码。每次循环开始时检查的条件,如果条件为真,则继续执行循环体;如果条件为假,则跳出循环。

一、for循环语法

for 循环的语法是:

for (expr1; expr2; expr3)
statement
  • 第一个表达式(expr1)在循环开始前无条件求值(并执行)一次;
  • expr2 在每次循环开始前求值。如果值为 true,则继续循环,执行嵌套的循环语句。如果值为 false,则终止循环;
  • expr3 在每次循环之后被求值(并执行)。

在 PHP 中,每个表达式都可以为空或包含逗号分隔的多个表达式。在表达式 expr2 中,所有用逗号分隔的表达式都会被计算,但只取最后一个结果。如果 expr2 为空,那么循环将无限进行下去(类似于 C 语言中的 for 循环),因为 PHP 会默认将其视为真值。虽然这可能不像预期的那样有用,但有时我们仍然希望使用有条件的 break 语句来结束循环,而不是依赖 for 循环的表达式真值判断。

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

示例1:

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

示例2:

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

示例3:

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

示例4:

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

当然,第一个例子看上去最简洁(或者有人认为是第四个),但用户可能会发现在 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);
}
?>
广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com。(#改为@)

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

目录