跳转到内容

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都会增加 1(由$i++ 递增步进 表示)。当$i达到5时,它不再小于5,因此循环停止。

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

注意:与 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 循环,了解另一种完成我们这里所做操作的方法。

更多信息

[编辑 | 编辑源代码]


华夏公益教科书