这些语句等价吗?
if ($a || $b && $c)
{
// ...
}
if (($a || $b) && $c)
{
// ...
}
编辑
真是打!但值得…THX给所有人!
答案:否。它们并不等同。
查看PHP运算符优先级表。它清楚地将&&
列在||
之前。
请参阅此处的操作:http://viper-7.com/cPycas
如果您想使用优先级而不是括号,可以使用更详细的AND
:
if ($a || $b AND $c)
{
// ...
}
这是演示,但我建议你不要这样做,因为它不像括号那么清晰。
&&
的优先级高于||
,所以不,它们不等价。
否。在PHP中,($a || $b && $c)
被评估为:($a || ($b && $c))
请参阅:http://php.net/manual/en/language.operators.precedence.php
将AND视为乘法,将OR考虑为加法,您将获得真实性和优先级。
$a = 1;
$b = 0;
$c = 0;
if ($a + $b * $c)
{
// ...
}
if (($a + $b) * $c)
{
// ...
}
amp&优先于||。操作员优先级