易百教程

PHP使用比较运算符

比较运算符采用两个操作数并比较它们,通常将比较结果作为布尔值返回,即truefalse

有四种比较非常直观:

比较运算符 含义
< 小于
<= 小于等于
> 大于
>= 大于等于

有一种特殊的操作符<=>(称为宇宙飞船)。它比较两个操作数并返回一个整数而不是一个布尔值。

ab进行比较时,结果将是:

  • 如果a小于b,则结果小于0
  • 如果a等于b,则结果为0
  • 如果a大于b,则结果大于0

示例代码

<?php
    var_dump(2 < 3); // true 
    var_dump(3 < 3); // false 
    var_dump(3 <= 3); // true 
    var_dump(4 <= 3); // false 
    var_dump(2 > 3); // false 
    var_dump(3 >= 3); // true 
    var_dump(3 > 3); // false 
    var_dump(1 <=> 2); // int less than 0 
    var_dump(1 <=> 1); // 0 
    var_dump(3 <=> 2); // int greater than 0 
?>

执行上面示例代码,得到以下结果:

D:\>php test.php
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
int(-1)
int(0)
int(1)

有比较运算符来评估两个表达式是否相等,但是需要注意类型自动转换。
==(等于)运算符在类型自动转换之后计算两个表达式。它会尝试将两个表达式转换为相同的类型,然后进行比较。
相反,===(相同)运算符计算两个没有类型自动转换的表达式,因此即使它们看起来相同,如果它们的类型不同,则比较将返回false
这同样适用于!=<>(不等于)和!==(不完全相同):

示例代码

<?php
    $a = 3; 
    $b = '3'; 
    $c = 5; 
    var_dump($a == $b); // true 
    var_dump($a === $b); // false 
    var_dump($a != $b); // false 
    var_dump($a !== $b); // true 
    var_dump($a == $c); // false 
    var_dump($a <> $c); // true 
?>

执行上面示例代码,得到以下结果:

D:\>php test.php
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)

当要测试字符串和表示相同数字的整数比较是否相等时,它计算的结果是:true,这是因为PHP首先将两者转换为相同的类型。
当要测试它们是否相同时,因为它们是不同类型,所以计算结果为:false