AND运算符
AND运算符称为逻辑运算符。 如果两个操作数均为true
,则返回true
。
示例:
<?php
$a = 100;
$b = 50;
if ($a == 100 and $b == 10)
echo "True";
else
echo "False";
?>
运行结果:
False
说明:这里需要计算变量$a = 100
而另一个变量$b = 10
,条件$a == 100
的结果为true,而$b == 10
的结果也为true。 因此,$a == 100 and $b == 10
的计算结果为false
,因为AND逻辑指出,如果两个操作数都为true
,则结果也为true
。 但是当判断$b = 10
时,条件为假,因此AND运算结果为false
。
“&&”运算符
&&
运算符称为逻辑运算符。 如果两个操作数均为true
,则返回true
。
示例:
<?php
$a = 100;
$b = 10;
if ($a == 100 && pow($b, 2) == $a)
echo "True";
else
echo "False";
?>
运行结果:
True
说明:这里需要计算变量$a = 100
且另一个变量$b = 10
,条件$ a == 100
的结果为true
,而pow($ b,2)== $a
的计算结果也为true
,因为$b = 10
会升为整数。 10
的2
次幂是100
,等于$a
。 因此,$a == 100 && pow($b,2)== $a
的计算结果为true,因为AND逻辑指出,只有当两个操作数都为true
时,AND
操作结果才为true
。 但是当输入$b = 20
时,条件pow($ b,2)== $a
为假,因此AND运算结果为假。
AND
和&&
运算符之间的比较:下面列出了两个运算符之间的一些区别:
基于优先级:优先级基本上决定了在表达式中首先执行哪些操作。&&
运算符的优先级高,而AND
运算符的优先级低。
示例:
<?php
$bool = TRUE && FALSE;
echo ($bool ? 'TRUE' : 'FALSE'), "";
$bool = TRUE and FALSE;
echo ($bool ? 'TRUE' : 'FALSE');
?>
运行结果:
FALSE
TRUE
只要操作数相同,两个运算符的结果就不同。 即使两个表达式都使用相同的运算,第一个表达式的计算结果为FALSE,而第二个表达式的计算结果为TRUE
。
第一个表达式$bool = TRUE && FALSE
; 因为首先执行&&
运算,所以结果为FALSE
,然后将结果赋给变量$bool
,因为&&
运算符的优先级高于=
的优先级。
第二个表达式$bool = TRUE and FALSE
; 计算结果为TRUE
,因为运算符and
的优先级低于运算符=
,因此将=
右边的值TRUE
赋给$bool
,然后在内部执行and
运算但未赋值,因此$bool
现在保持TRUE
。
因此,要解释一下,AND
运算符和&&
运算符的根本区别是它们的优先级差异,但是两者都执行相同的运算。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:PHP AND和&&的区别
本文链接:https://www.vsdiffer.com/vs/and-vs-as-operator-in-php.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。