PHP'and'运算符的奇怪行为

幼稚的

我在理解“和” 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执行。$condition2true现在。

2:$var2 == $var3;被执行,执行评估,但不给任何变量赋值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章