PHP提供了令人难以置信的运算符来执行诸如算术,赋值,比较等操作……在本文中,将更加重视逻辑运算符“ &&”和“ AND”,并将研究如何根据其运算符来利用它们。优先。逻辑运算符“ &&”和“ AND”会产生对或错的结果,因此也称为布尔运算符。
在深入探讨之前,让我们学习什么是“ AND”运算符?当且仅当两个条件都为真时,“ AND”运算符才返回true。让我们以一个示例来演示“ AND”运算符。
<?php $val1 = 20; $val2 = 50; if ($val1 == 20 and $val2== 50) echo "True"; else echo "False"; ?>
True
由于变量$val1 = 20和$val2 = 50,因此条件$val1 == 20评估为true,而$val2 == 50评估为true。因此,两个操作数都为真,结果也为真。让我们讨论另一个示例。
<?php $a = 30; $b = 50; if ($a == 30 and $b == 10) echo "True"; else echo "False"; ?>
False
因为我们已经声明了变量$a = 30和$b = 50,所以条件$a == 30的计算结果为true,但是当声明中的输入$b = 50且条件$b == 10时返回false,因此AND运算结果为假。
现在谈到“ &&”运算符,它也与“ AND”运算符相同,如果条件/操作数在表达式中都为真,则返回真。现在让我们看一下下面的示例,该示例实现了“ &&”运算符。
<?php $val1 = 25; $val2 = 5; if ($val1 == 25 && pow($val2, 2) == $val1) echo "True"; else echo "False"; ?>
True
由于变量$val1 = 25和$val2 = 5,因此条件$val1 == 25评估为true,并且pow($val2,2)== $val1同样评估为true,因为$val2 = 5的乘方为2的幂25,等于$val1。因此,“ $val1 == 25 && pow($val2,2)== $val1”的计算结果为true,因为AND逻辑指出,只有当两个操作数都为true时,AND操作结果才为true。
让我们考虑另一种情况,如果我们声明输入$val2 = 20,则条件pow($val2,2)== $val1的结果为false,因此AND运算结果为false。
现在根据优先级讨论“ AND”和“ &&”运算符之间的比较。根据表达式中运算符的优先级执行操作。“ &&”运算符的优先级高,而“ AND”运算符的优先级低。让我们通过以下示例研究上述差异。
<?php $a =10; $b = NULL; $val = $a && $b; echo ($val ? 'TRUE' : 'FALSE'),"\n"; $val = $a and $b; echo ($val ? 'TRUE' : 'FALSE'); ?>
FALSE TRUE
只要操作数相同,两个运算符的结果就不同。尽管第一个表达式都使用相似的活动,但第一个表达式则表达为FALSE,而第二个表达式则表达为TRUE。
第一个表达式$val = $a && $b; 因为首先执行“ &&”运算,所以表达为FALSE,然后将结果分配给变量$val,因为&&运算符的优先级高于“ =”运算符的优先级。
第二个表达式$bool = $a和$b; 计算结果为TRUE,因为运算符“和”的优先级低于运算符“ =”,因此将变量$a = 10(位于=右边)的值赋给$val,因此$val保留10,然后“和” “操作是在内部执行的,但未分配,因此$val现在保持TRUE。
因此需要澄清的是,“ AND”运算符和“ &&”运算符之间的主要区别在于它们的优先级,但是两者都执行类似的活动。