实践出真知~
测试代码
输入测试:
<?php$array = ['a' => 1,'b' => 2,'c' => [],];$a = $array['c'] ?? 0;$b = $array['c'] ?: 0;$c = $array['d'] ?? 0;$d = $array['d'] ?: 0;$e = $array['c'] ? 1 : 0;$f = isset($array['c']) ? 1 : 0;$g = $array['d'] ? 1 : 0;$h = isset($array['d']['e']) ? 1 : 0;$i = !empty($array['c']) ? 1 : 0;$j = !empty($array['d']) ? 1 : 0;var_dump($a);var_dump($b);var_dump($c);var_dump($d);var_dump($e);var_dump($f);var_dump($g);var_dump($h);var_dump($i);var_dump($j);
输出结果:
PHP Notice:Undefined index: d in /home/fanyu/abc.php on line 11PHP Notice:Undefined index: d in /home/fanyu/abc.php on line 14array(0) {}int(0)int(0)int(0)int(0)int(1)int(0)int(0)int(0)int(0)
结论
-
$a ?? 0 等同于 isset($a) ? $a : 0。
-
$a ?: 0 等同于 $a ? $a : 0。
-
empty: 判断一个变量是否为空(null、false、00、0、’0′、』这类,都会返回true)。
-
isset: 判断一个变量是否设置(值为false、00、0、’0′、』这类,也会返回true)。