2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > PHP

PHP7 “??” 和“?:”的区别实践

时间:05-29来源:作者:点击数:19

实践出真知~

测试代码

输入测试:

  • <?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 11
  • PHP Notice: Undefined index: d in /home/fanyu/abc.php on line 14
  • array(0) {
  • }
  • int(0)
  • int(0)
  • int(0)
  • int(0)
  • int(1)
  • int(0)
  • int(0)
  • int(0)
  • int(0)
结论
  1. $a ?? 0 等同于 isset($a) ? $a : 0。
  2. $a ?: 0 等同于 $a ? $a : 0。
  3. empty: 判断一个变量是否为空(null、false、00、0、’0′、』这类,都会返回true)。
  4. isset: 判断一个变量是否设置(值为false、00、0、’0′、』这类,也会返回true)。
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐