如果我正确理解了Alena here,她就说
$var1 = true && false;
$var2 = true and false;
将在var_dump($var1, $var2);
中生成:
假
真
Alena还说上面的代码基本上等于:
$var1 = (true and false);
($var2 = true) and false;
我承认我无法理解为什么第一个例子对第二个例子是euqal。我的意思是,为什么写这两行,一个在另一个之上,即使它们看起来基本相同,也会产生不同的输出,因此看起来应该带来相同的输出( false,false )。
答案 0 :(得分:1)
这是因为运营商的优先权。例如,1+2*3
为1+(2*3)
。
由于and
(实际上and or
)的优先级低于&&
和||
,因此=
会在and
之前执行:
$bool = true and false