我有点优化怪胎(至少按照我的定义),这个问题困扰了我很长一段时间。
我想知道 PHP 是否对 && 和 || 做了一些优化:举个例子:
$a = "apple";
$b = "orange";
if ($a == "orange" && $b == "orange") {
//do stuff
}
当该代码执行时,它将检查 $a 是否等于“橙色”。在这种情况下,它不是。但是,有一个 && 运算符。由于第一部分 ($a == "orange") 已经返回 false,PHP 是否仍会检查 $b 是否等于 "orange"?
我对 || 有同样的问题:
$a = "orange";
$b = "orange";
if ($a == "orange" || $b == "orange") {
//do stuff
}
当它检查 $a 是否等于“橙色”时,它返回 true。因为那会使|| 运算符返回 true,PHP 是否会检查 || 的第二部分 (因为我们已经知道这将是真的)?
希望我在这里有意义,希望有人能回答我。谢谢!