假设页面上已有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){
...
}
答案 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)
从快到慢的表现顺序:
答案 5 :(得分:0)
else
只是最快,因为它已经计算出if
语句是true
还是false
。最慢的是else if
,因为只有在if
为false
时才需要调用,并且之后必须进行额外检查。正常if
位于中间,只是额外检查。
你不应该把这个选择建立在性能上,而应该基于你的程序应该具有的逻辑。
答案 6 :(得分:0)
虽然我很佩服你对速度的渴望,但我认为测量PHP条件的基准将是永远无法确定的因为影响你的输出的许多不同变量。
话虽如此,this article显示了if / elseif / else语句与switch / case语句之间的基准。对我来说非常有趣的是,switch / case比if / elseif / else快15%。
希望能帮助您满足您对企业级别的渴望!