PHP7引入的“??” 和“?:”有什么区别

本篇文章给大家介绍一下php7引入的“??”  和“?:”区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

PHP7引入的“??”  和“?:”有什么区别

测试代码

输入测试:

 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。

立即学习“PHP免费学习笔记(深入)”;

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

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

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

推荐学习:php视频教程

以上就是PHP7引入的“??” 和“?:”有什么区别的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1969552.html

(0)
上一篇 2025年2月23日 07:38:25
下一篇 2025年2月23日 07:38:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 功耗测试及评估(rx588功耗测试与评估)

    rx588功耗 250w左右。 rx580看电影耗电,但是耗电并不多。很多视频都需要硬件进行解码。多多少少都会用得到显卡。xfx深红和迪兰恶魔单卡+7700K的平台功耗在380w左右,7700k算100w,其他设备加一起最多30w,也就是r…

    2025年3月13日
    200
  • javascript中“===”的用法是什么

    “===”是javascript内置的一个比较运算符,用于在逻辑语句中,测定变量或值是否绝对等于,即值和类型均相等;“===”运算符会先比较两边变量数据类型是否相等,然后比较两边变量的数值是否相等;只有数据类型和数值都相等,才返回true。…

    2025年3月11日
    200
  • javascript中=是什么

    “=”是javascript中的一个赋值运算符,用于将右边表达式的值赋给左边的变量或属性,例“name = “nch””;类似的赋值运算符还有“+=”、“-=”、“*=”、“/=”、“%=”等。 本教程操作环境:wi…

    2025年3月11日
    200
  • javascript中=、==、===是否有区别

    有区别。在javascript中,“=”是赋值运算符,会把右侧值赋值给左侧变量;而“==”和“===”是比较运算符,用于比较左右两侧的表达式是否相等。“==”在相等比较前,会先进行必要值的类型转换;而“===”不会执行类型转换。 本教程操作…

    2025年3月11日
    200
  • jquery中$啥意思

    在jquery中,“$”的意思为“获取”,主要是用于获得元素对象,通过获取对象,才能使用jquery方法对其进行操作;语法“$(selector)”。 本教程操作环境:windows7系统、jquery1.10.2版本、Dell G3电脑。…

    2025年3月11日
    200
  • javascript恒等运算符是什么

    在javascript中,恒等运算符是“===”,用于比较等式两边的操作数是否相等。“===”在比较运算时,不仅会比较两个操作数的值是否相等,还会检测它们的类型是否相同;只要值相等,类型相同,就会返回true。 本教程操作环境:window…

    2025年3月11日
    200
  • @在css中是什么作用

    在css中,“@”是一个声明,为CSS提供执行或怎么表现的指令。每个规则声明以“@”开头,后紧跟一个可用的关键字,这个关键字充当一个标识符,用于表示CSS该做什么;例如“@charset”规则就定义了浏览器使用的字符集,“@font-fac…

    2025年3月11日
    200
  • CSS 中 @ 用法详解

    at-rule是一个声明,为CSS提供执行或怎么表现的指令。每个声明以@开头,后紧跟一个可用的关键字,这个关键字充当一个标识符,用于表示CSS该做什么。这是一个通用的语法,尽管每个at-rule有其它语法变体。 常规规则 常规规则遵循下面的…

    2025年3月10日
    200
  • css中”:“和”::“有什么区别么

    区别:一个冒号是伪类,两个冒号是伪元素。 (推荐教程:CSS教程) 伪类可以独立于文档的元素来分配样式,且可以分配给任何元素,逻辑上和功能上类类似,但是其是预定义的、不存在于文档树中且表达方式也不同,所以叫伪类。 伪元素所控制的内容和一个元…

    2025年3月10日
    200
  • css中@有哪些用法

    CSS代码中经常会有@命令的应用,且功能多样。语法结构基本是一致的,@后面紧跟一个关键字,用于规定各自的功能。 at-rule是一个声明,为CSS提供执行或怎么表现的指令。每个声明以@开头,后紧跟一个可用的关键字,这个关键字充当一个标识符,…

    2025年3月10日
    200

发表回复

登录后才能评论