php7引入生效
官网定义:
$a ?? $b ?? $c NULL 合并操作符 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。
<?php
// +----------------------------------------------------------------------
// | Created by activity.
// +----------------------------------------------------------------------
// | PHP7 NULL合并操作符
// +----------------------------------------------------------------------
// | Author: alexander <gt199899@gmail.com>
// +----------------------------------------------------------------------
// | Datetime: 2017-05-09 15:56
// +----------------------------------------------------------------------
// | Perfect Is Shit
// +----------------------------------------------------------------------
$a = ['key'=>'value'];
// isset + 三元操作符
$b = isset($a['key_one']) ? $a['key_one'] : $a['key'];
var_dump($b);
// 三元操作符写法,不会判断isset,报错
$b = $a['key_one'] ?: $a['key'];
var_dump($b);
// null合并操作符写法
$b = $a['key_one'] ?? $a['key'];
var_dump($b);
// null合并操作符,取得一个不为null,并非boolean判断,false !== null
$c = $a['key1'] ?? $b['key'] ?? false ?? $a['key'];
var_dump($c);
$d = $a['key1'] ?? $b['key'] ?? null ?? $a['key'];
var_dump($d);