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 相关文章推荐
sqlyog 中文乱码问题的设置方法
Oct 19 PHP
解析PHP获取当前网址及域名的实现代码
Jun 23 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
php获取参数的几种方法总结
Feb 18 PHP
PHP命名空间(Namespace)简明教程
Jun 11 PHP
destoon之一键登录设置
Jun 21 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 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 allow_url_include的应用和解释
2010/04/22 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
快速入门Vue
2016/12/19 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
基于JavaScript实现验证码功能
2017/04/01 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
python super用法及原理详解
2020/01/20 Python
基于python爬取梨视频实现过程解析
2020/11/09 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
英文求职信写作小建议
2014/02/16 职场文书
小学开学典礼主持词
2014/03/19 职场文书
大学感恩节活动总结
2015/05/05 职场文书
民事上诉状范文
2015/05/22 职场文书
党风廉政建设心得体会
2019/05/21 职场文书