【问题标题】:Performace: multiple conditions in one IF or nested IF? [duplicate]性能:一个 IF 或嵌套 IF 中的多个条件? [复制]
【发布时间】:2016-12-16 15:49:31
【问题描述】:

(PHP) 例如,我有执行繁重查询并返回TRUEFALSE 的函数。 是否有任何性能差异:

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


【解决方案1】:

不,这没有性能差异。

在这个例子中,当条件 1 失败时,它不会执行第二个条件

if ( cond1()  &&  cond2() && cond3() && cond4())

【讨论】:

    猜你喜欢
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2011-08-27
    • 2012-07-13
    • 1970-01-01
    相关资源
    最近更新 更多