5

好的,所以我刚刚意识到 PHP 的一些奇怪行为,并且想知道为什么会发生这种情况。所以运行这段代码:

 var_dump( true and false ? 'one' : 'two' );

输出

boolean true

而不是您所期望的“两个”......问题似乎是使用“和”。

跑步:

var_dump( true && false ? 'one' : 'two' );

输出

string 'two' (length=3)

正如预期的那样。为什么使用 'and' 而不是 '&&' 会导致这种奇怪的行为?他们不应该是一样的吗?

4

2 回答 2

5

那是因为优先级?:高于,但低于。and&&

于 2012-04-22T22:34:37.723 回答
3

这是因为and优先级低于&&and ?:

于 2012-04-22T22:34:39.150 回答