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 相关文章推荐
用函数读出数据表内容放入二维数组
Oct 09 PHP
php实现mysql同步的实现方法
Oct 21 PHP
基于PHP常用函数的用法详解
May 10 PHP
php实现下载限制速度示例分享
Feb 13 PHP
PHP+memcache实现消息队列案例分享
May 21 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
php实现Mysql简易操作类
Oct 11 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 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 过滤危险html代码
2009/06/29 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
javascript中万恶的function实例分析
2011/05/25 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
python模块restful使用方法实例
2013/12/10 Python
详解Python中的日志模块logging
2015/06/19 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
如何让python的运行速度得到提升
2020/07/08 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
优秀经理事迹材料
2014/02/01 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
卖车协议书范例
2014/09/16 职场文书
狂人日记读书笔记
2015/06/30 职场文书
公司保密管理制度
2015/08/04 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis
python中的random模块和相关函数详解
2022/04/22 Python