‘and’ 和 ‘ && ‘运算符
“AND”操作符
AND运算符称为逻辑运算符。如果两个操作数都为真,则返回true。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // Variable declaration and // initialization $a = 100; $b = 50; // Check two condition using // AND operator if ($a == 100 and $b == 10) echo "True"; else echo "False"; ?> |
输出
1 | False |
说明:由于变量$a = 100和另一个变量$b = 10,条件$a == 100的值为真,$b == 10的值也为真。因此,’ $a == 100和$b == 10 ‘的计算值为true,因为和逻辑表明,如果两个操作数都为true,那么result也为true。但当输入$b = 20时,条件$b == 10为假,则AND操作结果为假。
“&&”操作符
1 2 3 4 5 6 7 8 9 10 11 12 | <?php // Declare a variable and initialize it $a = 100; $b = 10; // Check the condition if ($a == 100 && pow($b, 2) == $a) echo "True"; else echo "False"; ?> |
输出
1 | True |
说明:由于变量$a = 100和另一个变量$b = 10,条件$a = 100的值为真,pow($b, 2) = $a也为真,因为$b = 10的2次方等于$a。因此,’ $a == 100 && pow($b, 2) == $a ‘的计算值为true,逻辑表示只有当两个操作数都为真时,AND操作结果才为真。但当输入$b = 20时,条件pow($b, 2) == $a为假,因此AND操作结果为假。
“AND”和“&&”运算符之间的比较:两个运算符之间有一些区别,如下所示:
- 基于优先级:优先级基本上决定在表达式中首先执行哪些操作。“&&”运算符的优先级较高,“and”运算符的优先级较低。
- 基于操作:
1234567891011121314<?php// Expression to use && operator$bool = TRUE && FALSE;// Display the result of && operationecho ($bool ? 'TRUE' : 'FALSE'), "\n";// Expression to use AND operator$bool = TRUE and FALSE;// Display the result of AND operationecho ($bool ? 'TRUE' : 'FALSE');?>
输出
12FALSETRUE
说明
当操作数相同时,两个运算符的结果是不同的。第一个表达式求值为FALSE,而第二个表达式求值为TRUE,即使两个表达式都使用相同的操作。- 第一个表达式,$bool = TRUE && FALSE;计算结果为FALSE,因为首先执行&&操作,然后将结果赋给变量$bool,因为&&运算符的优先级高于=的优先级。
- 第二个表达式,$bool = TRUE和FALSE;由于运算符“and”的优先级比运算符“=”的优先级低,所以在=右侧的值TRUE被赋值给$bool,然后在内部执行“and”操作,但没有赋值,因此$bool现在为真。
解释一下,AND运算符和&&运算符的根本区别在于它们的优先级不同,但它们都执行相同的操作。