为什么需要括号

时间:2013-04-12 20:27:06

标签: php

$detect = new Mobile_Detect();
$mobile = $detect->isMobile() and !$detect->isTablet();

VS

$detect = new Mobile_Detect();
$mobile = ($detect->isMobile() and !$detect->isTablet());

如果我是平板电脑(也被认为是移动平板电脑),那么第一个例子就是移动设备。 (不期望)。对于第二个例子,我得到了假(如预期的那样)。

为什么我需要括号,因为它只是一个和运算符。

2 个答案:

答案 0 :(得分:6)

要拥有more adequate precedence compared to =,请使用&&

$mobile = $detect->isMobile() && !$detect->isTablet();

来自documentation on logical operators

  

“和”和“或”两种不同变体的原因   运营商是他们以不同的优先运作。

答案 1 :(得分:3)

您需要它们,因为=标志的优先级高于and。使用&&可能会丢失它们。