for loop vs while loop vs foreach loop PHP

首先,我是PHP的新手。我一直在脚本中使用for loop,while loop,foreach loop。我想知道

  • 哪一个更适合性能?
  • 选择循环的标准是什么?
  • 当我们在另一个循环中循环时应该使用哪个?

我想知道要使用哪个循环的代码。

for($i=0;$i<count($all);$i++)
{
 //do some tasks here
 for($j=0;$j<count($rows);$j++)
 {
  //do some other tasks here 
 }
}

很明显,我可以使用while编写上述代码。希望有人能帮助我弄清楚哪个循环应该更好地使用。


答案 1

哪一个更适合性能?

这不重要。

选择循环的标准是什么?

如果只需要遍历对象或数组的所有元素,请使用 。您需要包括foreachfor

  • 当您明确需要使用数字索引执行操作时,例如:
  • 当您需要在迭代中使用上一个或下一个元素时
  • 当您需要在迭代期间更改计数器时

foreach它更方便,因为它不需要您设置计数,并且可以通过任何类型的成员 - 无论是对象属性还是关联数组元素(a不会捕获)。它通常最适合可读性。for

当我们在另一个循环中循环时应该使用哪个?

两者都很好;在您的演示案例中,是最简单的方法。foreach


答案 2

哪一个更适合性能?

谁在乎啊?它不会很重要。曾。如果这些微小的优化很重要,你就不会使用PHP。

选择循环的标准是什么?

选择最容易阅读且将来最不容易导致错误的那个。当您循环整数时,循环很棒。当你像数组一样循环浏览一个集合时,很棒,当你只需要循环直到你“完成”时,那就太好了。forforeachwhile

这可能也取决于风格规则(例如,在Python中,你几乎总是想要使用foreach循环,因为这是“在Python中完成的方式”)。我不确定PHP中的标准是什么。

当我们在另一个循环中循环时应该使用哪个?

哪种循环类型最有意义(请参阅上面的答案)。

在你的代码中,循环对我来说似乎很自然,因为你有一个定义的开始和停止索引。for


推荐