【发布时间】:2016-12-16 15:49:31
【问题描述】:
(PHP)
例如,我有执行繁重查询并返回TRUE 或FALSE 的函数。
是否有任何性能差异:
if ( cond1() && cond2() && cond3() && cond4())
或
if (cond1()){
if (cond2()){
}
}
因为,在最后一种情况下,如果cond1() 为假,那么它不会执行其他条件.. 与第一个示例相同?
【问题讨论】:
-
没有性能差异。在这两种情况下,如果
cond1()返回 false,则不会调用任何其他函数。 -
如果有一个简单的方法可以测试... 咳嗽
false && print('hello'); -
我在 PHP 沙箱上运行了测试,发现在 PHP7 上的时间是相同的,但在 PHP 5.6 上,不同的 IF 语法结构有不同的时间。在重复锁定之前,我将在这里详细说明....
-
@Martin 字节码可能略有不同,但在逻辑上它们是相同的,并且在总体上没有性能差异,即
cond2()是否被执行根本没有。或者你能反驳吗? -
在这方面它们都是相同的过程,是的
标签: php performance