购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.1 比较运算

比较运算是控制代码流程中的重要角色,通过比较运算,以及它们之间的逻辑关系,可以灵活地判断各种条件,并执行相应的代码。PHP中的比较运算包括:

● 等于运算,使用==运算符,如$x == $y,$x等于$y时返回true,否则返回false。等于运算符的判断规则比较宽松,只要两个数据的字符串形式相同就会返回true。如"10"==10就会返回true。还有一些特殊情况也需要注意,在PHP 7及更早的版本中,空字符串和0比较也会返回true,即表达式""==0返回true,但在PHP 8中会返回false。此外,在PHP 7中,表达式123=="123a"返回true,但在PHP 8中返回false。

● 全等运算,使用===运算符,如$x===$y,当数据的类型和值都相等时返回true,否则返回false。如"123"==123返回true,而"123”===123返回false。

● 不等运算,使用!=或<>运算符,如$x != $y。

● 不全等运算,使用!==运算符,如$x !== $y。

● 小于运算,使用<运算符,如$x < $y。

● 小于等于运算,使用<=运算符,如$x <= $y。

● 大于运算,使用>运算符,如$x> $y。

● 大于等于运算,使用>=运算符,如$x>= $y。

● 组合比较运算符,使用<=>运算符。如$x <=> $y,当$x等于$y时返回0;$x小于$y时返回负整数;$x大于$y时返回正整数。这是PHP 7中新增的运算符。

● 空值结合运算,使用??运算符。如$x ?? $y,当$x不为null(空值)时返回$x的值,如果$x没有定义或者为null值则返回$y的值。这同样是PHP 7中新增的运算符。

大多数比较运算是很容易理解的。这里先来看等于、全等和不全等运算的应用,如下面的代码。

    <?php
    var_dump("123"==123);
    var_dump("123"===123);
    var_dump("123"!==123);
    ?>

代码执行结果见图4-1。

图 4-1

本例中,第一条语句使用字符串"123"和整数123比较,使用的是==运算符,此时会比较它的字符串形式是否相等,比较结果成立(true)。第二条语句中使用了===运算符,它会比较数据的类型和值,只有类型相同并且值也相同时才返回true,否则返回false。第三条语句使用!==运算符,当数据的类型和值有一个不同时就返回true,只有类型和值都相同时才返回false。

下面的代码演示了<=>运算符的使用。

    <?php
    $x = 10;
    $y = 99;
    $z = 99;
    echo $x <=> $y , "<br>";
    echo $y <=> $x , "<br>";
    echo $y <=> $z , "<br>";
    ?>

代码执行结果见图4-2。

图 4-2

下面的代码演示了??运算符的使用。

    <?php
    $y = 99;
    $z = null;
    var_dump($x ?? $y);
    echo "<br>";
    var_dump($y ?? $x);
    echo "<br>";
    var_dump($z ?? $y);
    ?>

执行代码会显示三个int(99)。 WeT4hTES8VSS2F18ysjWHq1empJjTE+KnV1ov8jPU2gcXvsaChNpAxKqD+oYaw1t

点击中间区域
呼出菜单
上一章
目录
下一章
×