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 相关文章推荐
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
PHP+ajax 无刷新删除数据
Feb 20 PHP
PHP写杨辉三角实例代码
Jul 17 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
微信支付PHP SDK之微信公众号支付代码详解
Dec 09 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
PHP实现的贪婪算法实例
Oct 17 PHP
PDO::beginTransaction讲解
Jan 27 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 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缓存类分享     php缓存机制
2014/01/22 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
PHP children()函数讲解
2019/02/03 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
nodejs中实现阻塞实例
2015/03/24 NodeJs
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
Python中__call__用法实例
2014/08/29 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
践行三严三实心得体会
2014/10/13 职场文书
2014年调度员工作总结
2014/11/19 职场文书
法制教育观后感
2015/06/17 职场文书
获奖感言怎么写
2015/07/31 职场文书
redis限流的实际应用
2021/04/24 Redis