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 相关文章推荐
snoopy 强大的PHP采集类使用实例代码
Dec 09 PHP
PHP备份数据库生成SQL文件并下载的函数代码
Feb 05 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
php实现的CSS更新类实例
Sep 22 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
laravel学习教程之关联模型
Jul 30 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
PHP实现微信提现功能
Sep 30 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 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/06/08 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Python pass详细介绍及实例代码
2016/11/24 Python
一道python走迷宫算法题
2018/01/22 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
python pandas生成时间列表
2019/06/29 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
介绍一下SQL中union,intersect和minus
2012/04/05 面试题
Linux如何压缩可执行文件
2014/03/27 面试题
成考报名单位证明范本
2014/01/16 职场文书
生物制药自我鉴定
2014/01/25 职场文书
三年级小学生评语
2014/04/22 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
MySQL普通表如何转换成分区表
2022/05/30 MySQL
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers