三元运算在流程中进程用到,你有犯晕的时候吗?
$a?:default 与 $a??default
- 共同点都是判断$a是否存在,存在返回:$a,否则返回:default
$a='';$b=0;$c='0';$d=array();$e=null;
var_dump($a?:1); // 1
var_dump($a??1); // ''
var_dump($b?:1); // 1
var_dump($b??1); // 0
var_dump($c?:1); // 1
var_dump($c??1); // "0"
var_dump($d?:1); // 1
var_dump($d??1); // array()
var_dump($e?:1); // 1
var_dump($e??1); // 1
综上:
- $a的值为:0,'',array(),'0'时,$a?:1得到的结果都是1;$a??1得到的结果都是$a;
- $a的值为:null时,$a?:1与$a??1得到的结果都是1