php7简短而安全的数组遍历方法
在写 PHP 的数组遍历的时候,我们通常会这样写:
foreach ($definition['keys'] as $id => $val) {// ...
}
但是其实这样会引起一个重要的问题:如果 $definition['keys']
没有定义的话,这个时候的数组变量(也就是 foreach)就会出现错误。
所以,我们进阶成这个样子:
if (!empty($definition['keys']) {foreach ($definition['keys'] as $id => $val) { // ... } }
是不是很常见?我们只要在外边再包含一层 if 判断就好了。这样能够保证数组的安全遍历。
不过这样还没有达到简短的需求,所以借助 PHP7 的 ??
便利,我们可以写成这个样子:
foreach ($definition['keys'] ?? [] as $id => $val) {// ...
}
是不是很 neat ! 哈哈哈,那么在这里理解 ?? 可以这样理解:
$a = is_null($b) ? $default : $b; $a = $b ?? $default;
相当于做了一个 is_null($b)
的操作。
来源:php简短而安全的数组遍历
转载于:https://www.cnblogs.com/lamp01/p/8443114.html
php7简短而安全的数组遍历方法相关推荐
- php的遍历方法,PHP数组遍历方法总结
在PHP中数组分为两类: 数字索引数组和关联数组. 其中数字索引数组和C语言中的数组一样,下标是为0,1,2- 而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似. 下面介绍PHP ...
- ES5和ES6数组遍历方法详解
ES5和ES6数组遍历方法详解 在ES5中常用的10种数组遍历方法: 1.原始的for循环语句 2.Array.prototype.forEach数组对象内置方法 3.Array.prototype. ...
- js 数组遍历方法详解(map、filter、find、findIndex、reduce)
目录 前言 map map是什么 map方法的结构及入参 语法糖 map一般不改变原数组 filter 说明 例子 find 和 findIndex 说明 例子 reduce 说明 例子 尾言 前言 ...
- 浅谈JS的数组遍历方法
用过Underscore的朋友都知道,它对数组(集合)的遍历有着非常完善的API可以调用的,_.each()就是其中一个.下面就是一个简单的例子: var arr = [1, 2, 3, 4, 5]; ...
- ES6中新增数组遍历方法
ES6中新增的方法 遍历方法: forEach(),fifter(),some(): array.forEach(function(currentValue,index,arr)) // curren ...
- js 数组遍历符合条件跳出循环体_Js数组遍历方法对比总结
引言: ES6为javascript为数组遍历提供了新的一种方式: for....of.....那之前的遍历方法各存在哪些缺点?for...of...有什么好处?接下来,我们先回顾一下有多少种方式. ...
- JavaScript 数组遍历方法的对比
前言 JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行起来那个比较快,不同循环方法使用在那些场景,下面将进行比较: 各种数组遍历的方法 for 语句 代码: var ...
- js数组遍历方法总结与对比
目录 总结 一.常规方法 for的4种写法 while 二.ES6方法 for...of,得到每项元素 for...in,得到的是数组索引 三.数组实例上的遍历方法 forEach(),得到每一项元素 ...
- 数据类型_array_es6新增的数组遍历方法
数组遍历 [1]map方法 [2]filter方法 [3]forEach方法 [4]some方法 [5]every方法 [6]findIndex方法 [7]includes方法 [8]reduce方法 ...
最新文章
- Hello World of OpenCascade
- python运势预测程序_Python 爬虫系列之一——每日星座运势
- QML笔记-JavaScript在QML中的使用(直接调用和间接调用)
- 基础知识 + 面试题目 总结 索引页
- 程序员的进阶课-架构师之路(5)-队列
- java日期减去天数得日期_Java日期添加天数,减去天数,日历
- Remove_if 删除vector数据
- 客户端可以查询到数据,程序却查询不到数据
- NH7020固件网口分析与platoSDR固件对比
- PDF文件怎么解密?教你三种解密的方法
- QCC3040---DFU(OTA)固件生成方法OTA方法
- clac计算样式不生效?
- sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证
- 现阶段中国人工智能生态的优缺点分析
- HTML学生个人网站作业设计:个人主页博客web网页设计制作 (HTML+CSS)
- linux系统部署web项目
- 张凯复旦大学计算机学院,徐丰 - 师资队伍 - 复旦大学信息科学与工程学院
- 全球及中国白蚁诱饵产品行业发展价值与需求潜力分析报告2022版
- IDC FutureScape:全球智慧城市2019年预测 - 中国启示
- 模拟QQ音乐微信登录界面