PHP编程
for
循环
for
循环是现代编程语言中最基本的循环结构之一。与 while
循环一样,for
循环会执行指定的代码块,直到满足某个条件。
语法
for
循环的基本语法与 C 语言相似:
for ([初始化]; [条件]; [步骤])
- 初始化:循环第一次运行时执行,用于初始化变量或执行其他在第一次执行循环体前需要做的操作。
- 条件:在每次执行循环体之前都会被评估。如果条件为真,循环体将被执行;如果条件为假,循环会终止,程序继续执行循环体后面的代码。
- 步骤:每次执行循环体后需要执行的操作,通常是更新计数器变量的值。
考虑以下示例:
<?php
for ($i = 0; $i < 5; $i++) {
echo($i . "<br />");
}
?>
PHP 输出:
0<br />1<br />2<br />3<br />4<br />
HTML 渲染:
0
1
2
3
4
你也可以按照个人偏好,去掉字符串连接的方式来格式化代码:
for ($i = 0; $i < 5; $i++) {
echo "$i<br />";
}
解释
在 for
循环内,变量 $i
从 0 开始。第一次执行时,它会打印出初始值 $i
,在本例中为 0。每次循环时,变量 $i
会增加 1(由 $i++
步骤表示)。当 $i
达到 5 时,它不再小于 5,循环停止。
需要注意的是,for
循环的初始化、条件和步骤部分可以留空。在这种情况下,循环将无限执行,直到使用 break
语句来终止循环。
使用 for
循环遍历数组
在 while
循环一节中,sort()
示例使用了 while
循环来打印数组的内容。通常程序员会使用 for
循环来处理这种任务。
示例
注意:下面的代码不推荐使用这种索引方式,建议使用键值对的 for
循环结构。
$menu = array("Toast and jam", "Bacon and eggs", "Homefries", "Skillet", "Milk and cereal");
// Note to self: get breakfast after writing this article
$count = count($menu);
for ($i = 0; $i < $count; $i++) {
echo ($i + 1 . ". " . $menu[$i] . "<br />");
}
同样,你可以选择去掉字符串连接,按照个人偏好格式化代码:
for ($i = 0; $i < $count; $i++) {
$j = $i + 1;
echo "$j. {$menu[$i]}<br />";
}
解释
$count = count($menu);
在 for
循环前定义 $count
是为了提高效率。这样每次执行 for
循环时(当 $i < $count
时),不必重复计算 count($menu)
,这在处理大数组时尤其重要。
for ($i = 0; $i < $count; $i++)
这行代码初始化计数器 $i
为 0,并每次循环时将其增加 1,检查 $i
是否小于数组的大小。
你还可以使用第二个初始化来实现相同的功能:
for ($i = 0, $count = count($menu); $i < $count; $i++) {
echo ($i + 1 . ". " . $menu[$i] . "<br />");
}
echo
语句的含义很明确,唯一可能不太清楚的是开头的 $i + 1
。因为数组的索引是从 0 开始的,数组的最后一个元素是 n - 1
(其中 n
是数组的长度),所以为了从 1 开始显示列表,我们每次打印时都需要将计数器加 1。
当然,正如我之前提到的,以下两段代码的输出结果是相同的:
Toast and jam ✓
Bacon and eggs ✓
Homefries ✓
Skillet ✓
Milk and cereal ✓
相信不信,这里有一种遍历数组的方法,甚至不需要这么多的打字。可以查看 foreach
循环,了解另一种实现相同功能的方式。