首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP7 引入的“??” 和“?:”的区别

PHP7 引入的“??” 和“?:”的区别

作者头像
双面人
发布2020-04-03 17:49:25
8730
发布2020-04-03 17:49:25
举报
文章被收录于专栏:热爱IT热爱IT
输入测试:
<?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)

结论 $a ?? 0 等同于 isset($a) ? $a : 0。

$a ?: 0 等同于 $a ? $a : 0。

empty: 判断一个变量是否为空(null、false、00、0、’0′、』这类,都会返回true)。

isset: 判断一个变量是否设置(值为false、00、0、’0′、』这类,也会返回true)。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档