PHP中“ &&”和“ AND”运算符之间的比较。

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。因此,两个操作数都为真,结果也为真。让我们讨论另一个示例。

范例2:

<?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”运算符和“ &&”运算符之间的主要区别在于它们的优先级,但是两者都执行类似的活动。