2

为什么这评价为真? $test = true and false;

这不是吗? $test = (true and false);

使用 && 运算符,它的计算结果都为 false,这也是我对 and 运算符的期望。显然,它们是不可互换的,除了它们具有不同的优先级。

4

2 回答 2

7

“&&”的优先级高于“and”

// The result of the expression (true && false) is assigned to $g
// Acts like: ($g = (true && false))
$g = true && false;

// The constant true is assigned to $h and then false is ignored
// Acts like: (($h = true) and false)
$h = true and false;

var_dump($g, $h);

打印假,真

于 2013-05-21T15:01:07.340 回答
4

除了优先级之外,它们是相同的

&&> =>and在优先级表中,因此您的第一个示例等效于:($test = true) and false;

于 2013-05-21T14:59:14.117 回答