很多人在代码的编写过程中都会大量使用三目运算,原因无它,只因为这样可以是自己的代码看起来更加简洁高效!!!
不可否认,三目运算确实方便了"你,我,他".而为了使用方便php版本7 更是引入了"??" 和"?:"这样简写的三目运算.
好了闲话少说,上示例:

<?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);
array(0) {
}
int(0)
int(0)
int(0)
int(0)
int(1)
int(0)
int(0)
int(0)
int(0)

通过以上示例我们可以得出以下结论:

$a ?? 0 等同于 isset($a) ? $a : 0。
$a ?: 0 等同于 $a ? $a : 0。
empty: 判断一个变量是否为空(null、false、00、0、'0′、』这类,都会返回true)。
isset: 判断一个变量是否设置(值为false、00、0、'0′、』这类,也会返回true)。

嗯,整篇文章估计上面这四行是精华有用!!!哈哈>>>
希望本文的内容对大家的学习或者工作具有一定的参考学习价值,同时谢谢大家的支持

浅谈php7 引入的“??“和 “?:“的区别相关推荐

  1. mybatis与php,浅谈mybatis中的#和$的区别

    浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...

  2. 浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解

    浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解 本篇文章小编为大家介绍,Android onTouchEvent 与 onInterceptTo ...

  3. 什么是proxy服务器代理?怎么设置代理服务器?浅谈服务器代理与VPN的区别

    服务器 服务器是计算机的一种,它比普通计算机运行更快.负载更高.价格更贵.服务器在网络中为其它客户机(如PC机.智能手机.ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务.服务器具有高速的C ...

  4. 浅谈机器学习-回归与分类的区别

    前言 机器学习的主要任务便是聚焦于两个问题:分类和回归.本文将浅谈下两者的区别. 区别 回归会给出一个具体的结果,例如房价的数据,根据位置.周边.配套等等这些维度,给出一个房价的预测.         ...

  5. 浅谈云计算与超融合的区别和联系

    在项目设计阶段遇到了云计算和超融合的实际运用的问题,虽然自己本身不负责设计,但是对于云计算与超融合的区别也不了解,故查了一些资料,由此谈一下自己的理解,内容干干巴巴不瞎扯,不当之处欢迎交流指正. 在谈 ...

  6. 浅谈session,cookie,sessionStorage,localStorage的区别及应用场景

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...

  7. [转]浅谈CMD和win powershell的区别

    1.前言:本文给大家简单描述了一下POWERSHELL和CMD的区别,简单的说,Powershell是cmd的超集,换句话说,cmd能做的事情,Powershell都能做,但是Powershell还能 ...

  8. 浅谈php7的重大新特性_PHP7的新特性和源码结构

    一.PHP7的新特性 返回值类型声明 类型声明有两种模式: 弱类型校验模式(默认):当传入的参数不符合声明类型时,会首先尝试转换类型. 严格类型校验模式:当传入的参数不符合声明类型时,直接报错. 声明 ...

  9. 浅谈c/c++typedef和#define区别[转]

    在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++的 ...

最新文章

  1. 菜单Menu(AS开发实战第四章学习笔记)
  2. 中间层体系结构的好处
  3. Java poi读取,写入Excel2003
  4. C++编绎器编绎C语言的问题
  5. 9076什么意思_(9076)《人力资源开发与管理》网上作业题及答案
  6. 零基础安装Ubuntu kylin 16.04 LTS 后应该做什么[本人安装目的:学习Python数据分析]
  7. 私有5g网络_面向企业的私有5G网络
  8. 【回归预测】基于GPML工具箱的高斯过程回归附matlab代码
  9. html怎么做qq空间主页,如何设计qq空间
  10. Scrapy——基本用法(命令行工具、Item、Spiders)
  11. 为什么现在很多人不看好商汤科技?
  12. 经济基础知识(初级)【13】
  13. 经典ps教程600例 打造ps高手
  14. A Survey for Image Quality Assessment(综述)
  15. 兰伯特(Lambert)光照模型总结
  16. python统计42所高校在各省的分布数量_话题| 全国各省高考难度排行揭晓,上大学有多难?...
  17. VMware 云桌面水印插件
  18. 产品经理应该具有的几个工作态度
  19. 用C++自制文字冒险选择游戏
  20. SQL offset 用法

热门文章

  1. MySQL授权命令grant的使用方法
  2. (Linux 2.6设备管理机制)kobject和kset
  3. opencv透视变换:GetPerspectiveTransform、warpPerspective函数的使用
  4. Spring Bean的装配(非XML文件方式)
  5. 洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA
  6. HTML5学习笔记简明版(10):废弃的元素和属性
  7. 怎么禁止实例化对象---2016-08-31
  8. php ascii hex编码
  9. 未能加载文件或程序集“System.Data.SQLite, Version=1.0.96.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139...
  10. 深入理解IIS的多线程工作机制