PHP如果OR是第二部分检查是真的吗?

Ser*_*gan 4 php optimization short-circuiting conditional-statements

我知道这一定是一个简单的问题,但我知道在PHP这样的声明中

if ($a && $b) { do something }
Run Code Online (Sandbox Code Playgroud)

如果$ a是假的PHP甚至不检查$ b

关于OR,同样如此

if ($a || $b) { do something }
Run Code Online (Sandbox Code Playgroud)

如果$ a为真,它是否仍然检查$ b

我知道这是基本的东西,但我无法在任何地方找到答案......谢谢

Jac*_*cob 9

一旦知道结果,就停止评估逻辑表达式.

逻辑运算符


Ste*_*rig 8

请参阅手册中Logical Operators页面上的示例1 .

// --------------------
// foo() will never get called as those operators are short-circuit

$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());
Run Code Online (Sandbox Code Playgroud)