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 相关文章推荐
php设计模式 Facade(外观模式)
Jun 26 PHP
PHP之uniqid()函数用法
Nov 03 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
PHP在线打包下载功能示例
Oct 15 PHP
简单实现php上传文件功能
Sep 21 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
Aug 30 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获取根域名方法汇总
2014/10/28 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
2009/04/09 Python
详解Python中的文件操作
2016/08/28 Python
python 中的int()函数怎么用
2017/10/17 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
打造完美自荐信
2014/01/24 职场文书
安全标兵事迹材料
2014/08/17 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python
python scrapy简单模拟登录的代码分析
2021/07/21 Python
app场景下uniapp的扫码记录
2022/07/23 Java/Android