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

对比

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

如果我是平板电脑(也被认为是移动设备),那么我在移动设备上的第一个例子就是如此。(没想到)。对于第二个示例,我得到了错误(如预期的那样)。

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

4

2 回答 2

6

与 = 相比,要获得更充分的优先级,请使用&&

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

有关逻辑运算符的文档中

“and”和“or”运算符的两种不同变体的原因是它们以不同的优先级运行。

于 2013-04-12T20:28:38.313 回答
3

您需要它们,因为=符号的优先级高于and. 使用&&,您可能会失去它们。

于 2013-04-12T20:28:46.963 回答