$a = ''; // or 0 or false$b = $a ?? 'a';// 此时会判断$a是否存在 $a不为null // 等价于// $b = isset($a) ? $a : 'a';// $b is '' or 0 or false$c = $a ?: 'a';// 此时会判断$a的值// $c is 'a'
$a = null;$b = $a ?? 'a';// 此时$a为null// $b is 'a'$c = $a ?: 'a';// $c is 'a'
$a = null;$b = 'b';$c = $a ?? $b ?? 'c';// 返回第一个有定义的值// $c is 'b'$a = null;$b = null;$c = $a ?? $b ?? 'c';// $c is 'c'
function getId(?int $id) { return $id;}// 参数为指定的整型或空值getId(857); // 857getId('857'); // 参数非整型 报错getId(); // 参数空 报错getId(''); // 参数非整型 报错getId(0); // 0getId(null); // null
function getId():?int{return 1;}// 返回值为指定的整型或空值getId() // 1function getId():?int{return null;}getId() // nullfunction getId():?int{return '1';}getId() // 返回非整型 报错
推荐学习:php视频教程
以上就是PHP7中的?与??有什么区别的知识。速戳>>知识兔学习精品课!