🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 表达式 ### [比较运算符](http://php.net/manual/en/language.operators.comparison.php) | 运算符 | 名称 | 例子 | 结果 | | --- | --- | --- | --- | | == | 等于 | $x == $y | 如果 $x 等于 $y,则返回 true。 | | === | 全等(完全相同) | $x === $y | 如果 $x 等于 $y,且它们类型相同,则返回 true。 | **差:** 弱对比会不会判断变量值的类型 ```php $a = '42'; $b = 42; if( $a != $b ) { //这里始终执行不到 } ``` 对比 $a != $b 返回了 `FALSE` 但应该返回 `TRUE` ! 字符串 '42' 跟整数 42 不相等 **优:** 强对比判断检查变量值类型和数据 ```php $a = '42'; $b = 42; if ($a !== $b) { // .... } ``` ### 运算符??(PHP7+的新特性) | 例子 | 名称 | 结果 | |---|---|---| | $a ?? $b ?? $c | NULL 合并操作符 | 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。 | **差:** ```php function test(): string { // 定义变量$a,$b和$c if (isset($a) && !empty($a)) { return $a; } else if (isset($b) && !empty($b)) { return $b; } else if (isset($c) && !empty($c)) { return $c; } } $ret = test(); ``` **优:** ```php $ret = $a ?? $b ?? $c; ``` ### 运算符<=>(PHP7+的新特性) | 例子 | 名称 | 结果 | |---|---|---| | $a <=> $b | 太空船运算符(组合比较符) | 当$a小于、等于、大于$b时 分别返回一个小于、等于、大于0的integer 值 | **差:** ```php $a = 'a'; $z = 'z'; $aOrdNum = ord($a); $zOrdNum = ord($z); if ($aOrdNum < $zOrdNum){ echo sprintf("%s小于%s\n", $a, $z); } ``` **优:** ```php $a = 'a'; $z = 'z'; if (($a <=> $z) <0 ){ echo sprintf("%s小于%s\n", $a, $z); } echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1 ```