PHP循环上下文查询

时间:2014-10-22 14:32:52

标签: php loops

一直困扰我的一个问题是,当第二个版本更小且更容易阅读时,人们会像第一个版本那样编写它。我认为这可能是因为php每次迭代时都会计算strlen。任何想法?

第一版

    for ($i = 0, $len = strlen($key); $i < $len; $i++) {}

显然,你可以在循环中使用$len并在代码中进一步使用,但是对于以下版本有什么好处?

第二版

    for ($i = 0; $i < strlen($key); $i++) {}

2 个答案:

答案 0 :(得分:2)

这是表现的问题。

for循环的第一个版本每次都会重新计算strlen,因此性能可能会降低。

尽管它不够重要,但你可能会惊讶于有时候缓慢的有多么慢。

您可以通过循环查看here一些性能基准测试。

答案 1 :(得分:1)

如果预期循环有多次迭代并且$key在此过程中不会发生变化,则最好使用第一个版本。

如果循环正在更新$key并且您需要重新计算它,或者重新计算它并不会影响您的表现,那么最好使用第二个。