跳至内容

PHP 编程/for 循环

来自维基教科书,开放的书籍,为开放的世界

for 循环

[编辑 | 编辑源代码]

for 循环是大多数现代编程语言中基本循环结构之一。与while 循环类似,for 循环会执行给定的代码块,直到满足某个条件。

PHP 中 for 循环的基本语法类似于 C 语法

 for ([initialization]; [condition]; [step])

初始化在循环第一次运行时发生。它用于初始化变量或执行其他要在循环体第一次执行之前执行的操作。

条件在循环体每次执行之前都会进行评估;如果条件为真,则会执行循环体,如果条件为假,则退出循环,程序执行将从循环体之后的首行代码继续执行。

步长指定在循环体每次执行之后要执行的操作。

考虑以下示例

PHP 代码:

for ($i = 0; $i < 5; $i++) {
  echo($i . "&lt;br /&gt;");
}

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&lt;br /&gt;";
}

在 for 循环中,它指示$i0开始。当循环第一次运行时,它会打印出$i的初始值,在示例中为0。对于每个循环,变量$i都会增加 1(由$i++ 递增步长表示)。当$i达到5时,它不再小于5,因此循环停止。

请注意,for 循环的初始化、条件和步长可以留空。在这种情况下,循环将无限期地继续,因此可以利用 中断执行 来停止循环。

注意:与 C、C#C++Java 等其他语言不同,在 for 循环中使用的变量可能是在 for 语句所在行中首先初始化的,但它在循环结束后仍然存在。

使用 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] . "&lt;br /&gt;");
}

同样,如果喜欢,也可以在不进行连接的情况下进行格式化。

for ($i = 0; $i < $count; $i++) {
  $j = $i + 1;
  echo "$j. {$menu[$i]}&lt;br /&gt;";
}
$count = count($menu);

我们在 for 循环之前定义计数器,以提高处理效率。这是因为 for 循环每次运行时(while $i < $count),它会评估等式的两边并执行任何函数。如果我们写$i < count($menu),这将在每次执行过程中评估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] . "&lt;br /&gt;");
}

echo 语句非常直观,除了开头,我们 echo$i + 1。我们之所以这样做,是因为如你所知,数组从0开始,到n - 1结束(其中n是它们的长度),因此要获得从 1 开始的编号列表,我们必须在每次打印计数器时加 1。

当然,如我之前提到的,两段代码都产生以下输出

  1. 吐司和果酱 ✓
  2. 培根和鸡蛋 ✓
  3. 土豆泥 ✓
  4. 煎锅 ✓
  5. 牛奶和麦片 ✓

信不信由你,实际上有一种遍历数组的方法需要更少的键入操作。(而这难道不是我们的目标吗?)请查看 foreach 循环,了解另一种执行我们在这里所做操作的方法。

更多信息

[编辑 | 编辑源代码]


华夏公益教科书