php速度测试条件

时间:2011-03-27 16:43:56

标签: php

假设页面上已有if语句。

现在,出于:

a second if statement
else
else if

哪个最快,运行速度最慢?

如果$ a只取2个可能值,这是否重要?

编辑:示例代码:

$a=2;
if ($a==1){
...
}

THEN

if ($a==2){
...
}

OR

else {
...
}

OR

else if ($a==2){
...
}

7 个答案:

答案 0 :(得分:4)

这不是一个真正的答案,但我不禁要问你为什么认为这很重要? (如果你担心将事情优化到这个级别,那么我怀疑PHP可能不是理想的语言。)

从本质上讲,代码易读性,一致性以及任何有助于长期维护的内容都比方式更重要,而且如果您遇到性能问题,我会很乐意放置一个大的因为它与if / else / switch等代码块没有任何关系这一事实(虽然是别人的钱)。

因此,如果您遇到性能问题,请分析代码以找出问题所在 - 不要浪费时间担心条件语句布局的“最佳”形式。 “最佳”形式是项目工程师最容易理解的形式。

答案 1 :(得分:2)

除非你在同一页面上做了一百万次比较(这是不太可能的),否则从根本上说并不重要。使用最好的可读性。

如果您有很多if / elseif条件,请查看switch声明。

答案 2 :(得分:0)

使用单独的if条件可能会比使用其他条件略慢,但是,即使有一百万个条件,你也无法注意到差异。如果你真的需要速度,那么php无论如何都不是正确的选择。

明确你必须自己分析不同条件的条件。

答案 3 :(得分:0)

  

哪个最快,运行速度最慢?

我认为速度的差异可以忽略不计,但后者似乎更快。前一个解决方案将测试两个不同的条件,而在后一个例子中,elseif中的条件甚至不会被评估:这是不必要的。所以,我认为这应该是最快的:

<?php
$foo = 42;
if( $foo === 42 ) {
}
elseif( $foo === 43 ) { // the condition isn't executed.
}

答案 4 :(得分:0)

从快到慢的表现顺序:

  • 否则
  • 如果
  • ELSEIF

答案 5 :(得分:0)

else只是最快,因为它已经计算出if语句是true还是false。最慢的是else if,因为只有在iffalse时才需要调用,并且之后必须进行额外检查。正常if位于中间,只是额外检查。

你不应该把这个选择建立在性能上,而应该基于你的程序应该具有的逻辑。

答案 6 :(得分:0)

虽然我很佩服你对速度的渴望,但我认为测量PHP条件的基准将是永远无法确定的因为影响你的输出的许多不同变量。

话虽如此,this article显示了if / elseif / else语句与switch / case语句之间的基准。对我来说非常有趣的是,switch / case比if / elseif / else快15%。

希望能帮助您满足您对企业级别的渴望!