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 相关文章推荐
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
php session劫持和防范的方法
Nov 12 PHP
php实现建立多层级目录的方法
Jul 19 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
laravel获取不到session的三种解决办法【推荐】
Sep 16 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 PHP
php中数组最简单的使用方法
Dec 27 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
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
django创建超级用户过程解析
2019/09/18 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
利用python实现逐步回归
2020/02/24 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
师范生自荐信
2013/10/27 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript