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 curl 并发最佳实践代码分享
Sep 05 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
Aug 01 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 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 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
PHP精确计算功能示例
2016/11/29 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
php的扩展写法总结
2019/05/14 PHP
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
Python简单计算文件MD5值的方法示例
2018/04/11 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Python3.9新特性详解
2020/10/10 Python
STP的判定过程
2012/10/01 面试题
招聘单位介绍信
2014/01/14 职场文书
合作投资意向书
2014/04/01 职场文书
端午节演讲稿
2014/05/23 职场文书
求职自我推荐信
2014/06/25 职场文书
工作证明格式范文
2015/06/15 职场文书
nginx请求限制配置方法
2021/07/09 Servers
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python