PHP中‘and’运算符称为逻辑运算符。如果两个操作数均为true,则返回true。
例:
<?php
$a = 100;
$b = 50;
if ($a == 100 and $b == 10) {
echo "True";
} else {
echo "False";
}
输出:
False
说明:由于变量 a = 100 而 另 一 个 变 量 a = 100而另一个变量 a=100而另一个变量b = 10,因此条件 a = = 100 的 计 算 结 果 为 t r u e , 而 a == 100的计算结果为true,而 a==100的计算结果为true,而b == 10的计算结果为true。因此,' a = = 100 和 a == 100和 a==100和b == 10’的计算结果为true,因为AND逻辑表明如果两个操作数都为真,则结果也为真。但是当输入 b = 20 时 , 条 件 b = 20时,条件 b=20时,条件b == 10为假,因此AND运算结果将为false。
PHP中‘&&’运算符也称为逻辑运算符。如果两个操作数均为true,则返回true。
例:
<?php
$a = 100;
$b = 10;
if ($a == 100 && pow($b, 2) == $a) {
echo "True";
} else {
echo "False";
}
输出:
True
说明:由于变量$ a = 100而另一个变量$ b = 10,条件$ a == 100的计算结果为true,而pow($ b,2)== $ a也计算为true,因为 b = 10 被 提 升 到 2 的 幂 是 100 , 等 于 b = 10被提升到2的幂是100,等于 b=10被提升到2的幂是100,等于 a。因此,'$ a == 100 && pow($ b,2)== $ a’的计算结果为真,因为AND逻辑表明只有当两个操作数都为真时,AND运算结果才为真。但是当输入$ b = 20时,条件pow($ b,2)== $ a为false,因此AND运算结果为false。
‘AND’和’&&'运算符之间的比较:
基于优先级:
优先级基本上决定在表达式中首先执行哪些操作。'&&'运算符的优先级高,'AND’运算符的优先级低。
基于操作:
示例:
<?php
// 使用&&运算符的表达式
$bool = TRUE && FALSE;
// 显示&&操作的结果
echo ($bool ? 'TRUE' : 'FALSE'), "\n";
$bool = TRUE and FALSE;
echo ($bool ? 'TRUE' : 'FALSE');
输出:
False
True
说明:每当操作数相同时,两个运算符的结果都不同。第一个表达式的计算结果为
FALSE
,而第二个表达式的计算结果为TRUE
,即使它们都使用相同的操作。因此,AND
运算符和&&
运算符的根本区别在于它们的优先级差异,但两者都执行相同的操作。第一个表达式,$bool = TRUE && FALSE;
计算结果为FALSE
,因为执行了第一个&&
操作,然后将结果赋值给变量$bool
,因为&&
运算符的优先级高于=
的优先级。第二个表达式,$bool = TRUE and FALSE;
计算结果为TRUE
,因为运算符and
的优先级低于运算符=
,因此=
的右边的值TRUE
被分配给$bool
,然后and
操作在内部执行但未分配,因此$bool
现在保持为TRUE
。