PHP 中 “&&” 和 “AND” 运算符的比较。
PHP 提供了强大的运算符来执行算术、赋值、比较等多种操作……本文将重点介绍逻辑运算符 “&&” 和 “AND”,并研究如何根据它们的优先级来使用它们。逻辑运算符 “&&” 和 “AND” 的结果是真或假,因此它们也被称为布尔运算符。
在深入研究之前,让我们先了解一下什么是 “AND” 运算符?“AND” 运算符只有当两个条件都为真时才返回真。让我们通过一个例子来演示 “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 评估为真,但当在声明中输入 $b = 50 并在条件 $b == 10 中返回假时,所以 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 评估为真,而 pow($val2, 2) == $val1 也评估为真,因为 $val2= 5 的 2 次幂是 25,它等于 $val1。因此,'$val1 == 25&& pow($val2, 2) == $val1' 评估为真,因为 AND 逻辑规定只有当两个操作数都为真时,AND 操作的结果才为真。
注意
让我们再举一个例子,如果我们声明输入 $val2 = 20,条件 pow($val2, 2) == $val1 将导致假,所以 AND 操作的结果将为假。
现在讨论 “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” 运算符和 “&&” 运算符之间的主要区别在于它们的优先级,但两者都执行相同的操作。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP