PHP逻辑运算符

逻辑运算符用来组合逻辑运算的结果,是程序设计中一组非常重要的运算符。

PHP中的逻辑运算符如下表所示:

逻辑运算符 示例 何时结果为真
&& 或 and(逻辑与) $m && $n 或 $m and $n 当 $m 和 $n 都为真时结果为真,$m 和 $n 有任意一个为假时结果为假
|| 或 or(逻辑或) $m || $n 或 $m or $n 只要 $m 和 $n 中有任意一个为真,则结果为真
xor(逻辑异或) $m xor $n 当 $m 和 $n 一真一假时,结果为真
!(逻辑非) !$m 当 $m 为假时,结果为真

“&&”或“and” 逻辑与

左右两个条件同时为 TRUE 时,则结果为 TRUE;两个条件中有任意一个条件为 FALSE 时,则结果为 FALSE。当左边的条件为 FALSE 时,将直接跳过右边的条件直接返回 FALSE。

【示例】假设 18 岁到 25 岁之间符合征兵的条件,小明今年 21 岁,判断小明适不适合当兵,实现代码如下:
<?php
    $age = 21;
    if($age >= 18 && $age <= 25){
        echo '符合当兵条件!';
    }else{
        echo '不符合当兵条件!';
    }
?>
示例中我们使用到的 if else 语句会在后面详细讲解。

运行结果如下:

符合当兵条件!

“||”或“or” 逻辑或

如果两个条件有一个为 TRUE,则结果为 TRUE;如果两个条件都是为 FALSE,则结果为 FALSE。当左边条件为 TRUE,将跳过右边条件的判断,直接返回 TRUE。

【示例】调整上面的示例,使用逻辑或运算符实现,代码如下所示:
<?php
    $age = 21;
    if($age < 18 || $age > 25){
        echo '不符合当兵条件!';
    }else{
        echo '符合当兵条件!';
    }
?>

“!” 逻辑非

将一个布尔值进行取反操作。例如:!true = false、!false = true、!10 = false。

【示例】同样使用前面的示例,使用逻辑非操作符实现,代码如下所示:
<?php
    $age = 21;
    if(!($age < 18 || $age > 25)){
        echo '符合当兵条件!';
    }else{
        echo '不符合当兵条件!';
    }
?>
【示例】判断指定的年份是不是闰年:
<?php
    $year = 2020;
    if($year%4==0 && $year%100!=0 || $year%400==0){
        echo $year.'年是闰年!';
    }else{
        echo $year.'不年是闰年!';
    }
?>
运行结果如下:

2020年是闰年!