PHP7

来自tomtalk
Tom讨论 | 贡献2017年10月24日 (二) 09:32的版本 空合并运行符??

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

<=>组合比较运算符

太空船操作符,即 <=>,又称组合比较运算符,结合比较运算符。

组合比较运算符,英文叫作combined comparison operator,符号为<=>,它有一个形象的名字,叫作太空船操作符。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。

语法是这样的:

$c = $a <=> $b;

这句代码的意思是

  • 如果$a > $b, $c 的值为1
  • 如果$a == $b, $c 的值为0
  • 如果$a < $b, $c 的值为-1

在没有太空船运算符的时候,我们只能这样写代码

$c = $a > $b ? 1 : ( $a==$b ? 0 : -1 );

或者用if else条件语句写得更多,现在是不是简单多了?

空合并运行符??

PHP 7引进了空合并运行符??,空值合并运行符,英文名叫the null coalescing operator,符号写作??。

语法形如

$a = $b ?? $c;

意思是:如果变量 $b 已经定义,没有被注销,并且不为null, 就将 $b 的值赋给变量 $a, 否则将变量 $c 的值赋给变量 $a.

相当三元运算的

$a = isset($b) ? $b : $c;

或者条件结构运算

if( isset($b) ){
    $a = $b;
} else {
    $a = $c;
}

注意:PHP null合并运算符??前面的变量不存在时不会报错,但如果??后面的变量没有定义,则会触发E_NOTICE级别的错误。