使用'和'的PHP三元语句

时间:2012-04-22 22:32:35

标签: php

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

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

输出

boolean true

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

运行:

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

输出

string 'two' (length=3)

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

2 个答案:

答案 0 :(得分:5)

这是因为?:的{​​{3}}高于and,但低于&&

答案 1 :(得分:3)

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