我在理解“和” PHP运算符的行为时遇到了麻烦。
这是代码:
$condition1 = true;
$var2 = "var2";
$var3 = "var3";
$condition2 = $condition1 and $var2 == $var3;
if($condition2)
echo '$condition1 and $var2 == $var3';
输出:$ condition1和$ var2 == $ var3
现在很明显,由于$var2 != $var3
,$condition2
应该为false。因此,该echo
语句不应执行,而会以其他方式发生。谁能告诉我这段代码有什么问题吗?
使用&&
代替and
。
and
的优先级低于&&
。该声明
$condition2 = $condition1 and $var2 == $var3;
从左到右分两个步骤执行。
1:$condition2 = $condition1
执行。即$condition2
是true
现在。
2:$var2 == $var3;
被执行,执行评估,但不给任何变量赋值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句