跳至内容

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 循环中,表示$i开始为0。当循环第一次运行时,它会打印的初始值,在本例中是。$i,在本例中是。0。对于每个循环,变量$i增加一(由$i++ 递增步骤 表示)。当$i达到5时,它不再小于5,因此循环停止。

请注意,for 循环的初始化、条件和步骤可以为空。在这种情况下,循环将无限期地继续,随后可以使用 break 执行 来停止循环。

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

使用 for 循环遍历数组

[编辑 | 编辑源代码]

在关于 while 循环的部分中,sort() 示例使用 while 循环打印出数组的内容。通常程序员使用 for 循环 来完成此类工作。

注意:强烈不建议使用如下所示的索引。使用 key-value for-loop 结构。

$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,每次循环结束后加一,并检查$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. 吐司和果酱 ✓
  2. 培根和鸡蛋 ✓
  3. 土豆泥 ✓
  4. 煎锅 ✓
  5. 牛奶和麦片 ✓

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

更多信息

[编辑 | 编辑源代码]


华夏公益教科书