PHP7引入的"??"和"?:"的区别讲解


Posted in PHP onApril 08, 2019

实践出真知~

测试代码

输入测试:

<?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)。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
一个程序下载的管理程序(一)
Oct 09 PHP
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
php ss7.5的数据调用 (笔记)
Mar 08 PHP
PHP Zip压缩 在线对文件进行压缩的函数
May 26 PHP
PHP获取url的函数代码
Aug 02 PHP
如何用php获取程序执行的时间
Jun 09 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
Oct 18 PHP
PHP开发实现快递查询功能详解
Apr 08 #PHP
PHP中number_format()函数的用法讲解
Apr 08 #PHP
微信JSSDK分享功能图文实例详解
Apr 08 #PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 #PHP
详解php命令注入攻击
Apr 06 #PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
Apr 05 #PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 #PHP
You might like
php中{}大括号是什么意思
2013/12/01 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
django rest framework使用django-filter用法
2020/07/15 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
Joules美国官网:出色的英国风格
2017/10/30 全球购物
理想演讲稿范文
2014/05/21 职场文书
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
受伤赔偿协议书
2014/09/24 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
推普标语口号大全
2015/12/26 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js