此文章发布于33个月前,部分信息可能已经过时,请自行斟酌确认
$a ?? 0
等同于 isset($a) ? $a : 0
$a ?: 0
等同于 $a ? $a : 0
empty
:判断一个变量是否为空(null、false、00、0、'0'0'、都会返回true)
isset
:判断一个变量是否设置(值为false、00、0、'0′、也会返回true
) 注意:如果$a为php常量中的null
则isset($a)为 false
代码示例:
$array = [
'a' => 1,
'b' => 2,
'c' => 0,
'd'=>[],
];
$a = $array['b'] ?? 0;
//结果为$a=2 相当于 $a = isset($array['b']) ? $array['b'] : 0;
$b = $array['a'] ?: 0;
//结果为$b=1
$c = $array['e'] ?? 3;
//结果为$c=3
$d = $array['e'] ?: 3;
//系统报错 因为 $array['e'] 未声明 //未定义数组索引: e
$e = $array['c'] ? 5 : 6;
//结果为$e=6
$f = isset($array['c']) ? 1 : 2;
//结果为$f=1
$g = $array['e'] ? 3 : 4;
//系统报错 因为 $array['e'] 未声明 //未定义数组索引: e
$h = isset($array['d']['e']) ? 5 : 6;
//结果为$h=6
$i = !empty($array['d']) ? 7 : 8;
//结果为$i=8
$j = !empty($array['e']) ? 9 : 10;
//结果为$j=10
最后修改:2020 年 12 月 31 日 01 : 08 AM
© 允许规范转载