PHP运算符差异&&和“和”
可能重复:
'AND'和'&&'作为运算符
对不起,基本的问题,但我开始学习PHP只是一个星期前,并找不到在谷歌/ stackoverflow这个问题的答案。
我经历了下面的程序:
$one = true;
$two = null;
$a = isset($one) && isset($two);
$b = isset($one) and isset($two);
echo $a.'<br>';
echo $b;
它的输出是:
false
true
我读&& /和是一样的。 两者的结果有何不同? 有人能说出真实的原因吗?
原因是运营商优先。 在您使用&&
and
& =
三个运算符中,优先顺序是
&&
=
and
因此, $a
在你的程序计算预期但对于$b
,声明$b = isset($one)
首次计算,给人意想不到的结果。 它可以如下修复。
$b = (isset($one) and isset($two));
这就是运营商的分组是如何发生的
$one = true;
$two = null;
$a = (isset($one) && isset($two));
($b = isset($one)) and isset($two);
echo $a.'<br>';
echo $b;
这就是为什么它返回虚假第一和真实第二。
请参阅:http://www.php.net/manual/en/language.operators.logical.php
它解释说,“和”不同于“&&”,因为操作顺序是不同的。 在这种情况下,分配首先发生。 所以如果你这样做:
$b = (isset($one) and isset($two));
你最终会得到预期的结果。
链接地址: http://www.djcxy.com/p/57603.html