PHP 中"&&"和"AND"运算符的比较。

phpobject oriented programmingprogramming更新于 2025/10/18 17:48:00

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

示例 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 运算结果将为 false。

现在谈到"&&"运算符,它的工作原理与"AND"运算符相同,如果表达式中的两个条件/操作数都为真,则返回 true。现在让我们看看下面的示例,它实现了"&&"运算符。

示例:

<?php
   $val1 = 25;
   $val2 = 5;
   if ($val1 == 25 && pow($val2, 2) == $val1)
      echo "True";  
   else
      echo "False";
?>

输出:

True

解释:

由于变量 $val1 = 25 且 $val2 = 5,条件 $val1 == 25 计算结果为真,而 pow($val2, 2) == $val1 同样计算结果为真,因为 $val2= 5 的 2 次方等于 25,等于 $val1。因此,'$val1 == 25&& pow($val2, 2) == $val1'计算结果为真,因为 AND 逻辑表明只有当两个操作数都为真时,AND 运算结果才为真。

注意:

我们再举一个例子,如果我们声明输入 $val2 = 20,则条件 pow($val2, 2) == $val1 将导致 false,因此 AND 运算结果将为 false。

现在讨论"AND"和"&&"运算符在优先级方面的比较。运算根据表达式中运算符的优先级执行。'&&' 运算符的优先级高,而"AND"运算符的优先级低。让我们通过下面的例子来研究上述差异。

<?php
   $a =10;
   $b = NULL;
   $val = $a && $b;
   echo ($val ? 'TRUE' : 'FALSE'),"
";    $val = $a and $b;    echo ($val ? 'TRUE' : 'FALSE'); ?>

输出:

FALSE
TRUE

解释:

当操作数相同时,两个运算符的结果不同。第一个表达式结果为 FALSE,而第二个表达式结果为 TRUE,尽管两者都使用相同的操作。 

第一个表达式 $val = $a && $b; 计算结果为 FALSE,因为首先执行了 &&& 操作,然后将结果分配给变量 $val,因为 && 运算符的优先级高于 &=& 运算符的优先级。

 第二个表达式 $bool = $a and $b; 计算结果为 TRUE,因为运算符 “and” 的优先级低于运算符 “=& 。因此,= 右侧的变量 $a = 10 的值被赋值给 $val,因此 $val 保持 10,然后"and"操作在内部执行但未赋值,因此 $val 现在保持 TRUE。 

因此需要澄清的是,"AND"运算符和"&&"运算符之间的主要区别在于它们的优先级,但两者都执行类似的活动。


相关文章