循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。 Show for 循环for 循环用于您预先知道脚本需要运行的次数的情况。 语法for (初始值; 条件; 增量) { 要执行的代码; } 参数:
注释:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。 实例下面的实例定义一个初始值为 i=1 的循环。只要变量 i 小于或者等于 5,循环将继续运行。循环每运行一次,变量 i 就会递增 1: 实例<?phpfor($i=1; $i<=5; $i++){echo"数字为 " . $i . PHP_EOL; }?> 输出: 数字为 1 数字为 2 数字为 3 数字为 4 数字为 5 foreach 循环foreach 循环用于遍历数组。 语法foreach ($array as $value) { 要执行代码; } 每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。 foreach ($array as $key => $value) { 要执行代码; } 每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。 实例下面的实例演示了一个输出给定数组的值的循环: 实例<?php $x=array("Google","Runoob","Taobao"); foreach($xas$value){echo$value . PHP_EOL; }?> 输出: Google Runoob Taobao 下面的实例演示了一个输出给定数组键与值的循环: 实例<?php$x=array(1=>"Google", 2=>"Runoob", 3=>"Taobao"); foreach($xas$key => $value){echo"key 为 " . $key . ",对应的 value 为 ". $value . PHP_EOL; } ?> 输出: key 为 1,对应的 value 为 Google key 为 2,对应的 value 为 Runoob key 为 3,对应的 value 为 Taobao (PHP 4, PHP 5, PHP 7, PHP 8) for (expr1; expr2; expr3) statement 第一个表达式(expr1)在循环开始前无条件求值(并执行)一次。 expr2 在每次循环开始前求值。如果值为 expr3 在每次循环之后被求值(并执行)。 每个表达式都可以为空或包括逗号分隔的多个表达式。表达式 expr2 中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。expr2 为空意味着将无限循环下去(和 C
一样,PHP 暗中认为其值为 考虑以下的例子,它们都显示数字 1 到 10:
当然,第一个例子看上去最简洁(或者有人认为是第四个),但用户可能会发现在 PHP 也支持用冒号的 for (expr1; expr2; expr3): statement; ... endfor; 有时经常需要像下面这样例子一样对数组进行遍历:
$i = 0; $i < count($people); ++$i) 以上代码可能执行很慢,因为每次循环时都要计算一遍数组的长度。由于数组的长度始终不变,可以用一个中间变量来储存数组长度以优化而不是不停调用 count():
$i = 0, $size = count($people); $i < $size; ++$i) matthiaz ¶ 10 years ago
nzamani at cyberworldz dot de ¶ 21 years ago
Andrew ¶ 8 years ago
Warbo ¶ 8 years ago
other comments have pointed out, if "calculateLoopLength" will keep giving back the same value, it can be moved outside the loop: ju dot nk at email dot cz ¶ 4 years ago
dx at e-mogensen dot dk ¶ 5 years ago
JustinB at harvest dot org ¶ 17 years ago
Philipp Trommler ¶ 9 years ago
= array(0 => "a", 1 => "b", 2 => "c", 3 => "d"); AoKMiKeY ¶ 8 years ago
Vincenzo Raco ¶ 8 years ago
= array( Anonymous ¶ 2 years ago
user at host dot com ¶ 18 years ago
ju dot nk at email dot cz ¶ 4 years ago
htroyo ¶ 6 years ago
Anonymous ¶ 8 years ago
bishop ¶ 19 years ago
mparsa1372 at gmail dot com ¶ 1 year ago
epicxmoe at gmail dot com ¶ 5 years ago
epicxmoe at gmail dot com ¶ 5 years ago
|