如果(x OR y)表现

Oli*_*erg 0 php performance if-statement

我有一个与性能相关的问题,关于PHP如何在条件中评估OR运算符.

我有一个条件,调用2个函数,都返回布尔值:

第一个是简单,快速的功能 - simpleFunction()

第二个是更密集的函数,查询DB - intensiveFunction()

我可以像这样编写条件,这样如果第一个简单函数返回TRUE,则不会执行第二个更强的函数:

if ( simpleFunction() ) {
   // Do Stuff
} elseif ( intensiveFunction() ) {
   // Do the same stuff (redundant code)
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当在PHP条件中使用和OR运算符时,如果第一个条件(在运算符的左侧)为TRUE,第二个函数(在运算符的右侧)是否会被执行?

if ( simpleFunction() || intensiveFunction() ) {
    //Do Stuff
}
Run Code Online (Sandbox Code Playgroud)

这个条件将在循环内运行,所以我想避免在每次迭代时运行intensiveFunction().

Nea*_*eal 6

相信一旦在一个一个操作中发现了一个真理,那么该陈述就会结束并返回true,

而在一个一个操作中,它运行直到它发现一个假.

  • 不要相信,确定([就像你说的那样](http://php.net/manual/en/language.operators.logical.php)). (4认同)