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 计算结果为真,$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"运算符和"&&"运算符之间的主要区别在于它们的优先级,但两者都执行类似的活动。

