【问题标题】:Which is faster and uses less resources in php? [duplicate]哪个更快并且在php中使用更少的资源? [复制]
【发布时间】:2011-05-31 01:21:12
【问题描述】:

可能重复:
for vs foreach vs while which is faster for iterating through arrays in php

For eachwhile,哪个更快,推荐,它们的资源使用情况如何?

【问题讨论】:

  • 如果这是一个真正的问题,我怀疑您使用了错误的语言和平台。
  • @amphetamachine,这些轮子承载了大多数顶级站点,哈哈 :) 这里的关键词是“真正的关注”。你真正需要的不是程序语言,而是程序员。濒临灭绝的物种 novadays...

标签: php foreach while-loop performance


【解决方案1】:

foreach 针对集合的迭代进行了优化。这是一种奇特的说法,当您将它与数组(以及 PHP5 中的对象)一起使用时,它的效果最好(并且最快)。您可以使用 while() 来获得与 foreach 相同的效果,但效率不高,因为您需要在 while 循环内调用 list()

foreach($array as $key => $value) 写成whilewhile(list($key,$value) = each($array))。您可以查看需要的额外调用次数。

【讨论】:

  • +1。 foreach 的一大缺点是您无法在集合中导航,而且您不知道何时到达终点。
  • foreach 循环将执行相同的调用,只是它不可见。更短的代码不一定更快(尽管在这种情况下可能更快)。
  • @Pekka 没那么大。而且,你知道,这个问题本身就是愚蠢的。
  • @Col 好吧,如果您需要在数组内导航,它一个很大的缺点。但我同意,性能差异真的无关紧要
  • @Pekka 不知道“导航”是什么意思,但如果它不是“迭代”,那么 foreach 就是错误的工具
【解决方案2】:

我认为他们应该有相同的速度。 我更喜欢 foreach,因为它更安全。

【讨论】:

    【解决方案3】:

    这可能取决于您如何使用它们。您可以选择通过引用foreach 循环来传递数组。在这种情况下,将不会复制整个数组。像这样的优化可能比在foreachwhile 之间进行选择更有效。

    【讨论】:

      猜你喜欢
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 2015-12-02
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      相关资源
      最近更新 更多