资讯专栏INFORMATION COLUMN

PHP 简短而安全的数组遍历

paulli3 / 2411人阅读

摘要:在写的数组遍历的时候,我们通常会这样写但是其实这样会引起一个重要的问题如果没有定义的话,这个时候的数组变量也就是就会出现错误。这样能够保证数组的安全遍历。

在写 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) 的操作。

如果你有更好的,请评论告知!

双十一关注公众号 codecasts 即送 100 元订阅优惠劵的活动还有效!CODECASTS 支持 ETC BTC等电子购买订阅会员啦

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26056.html

相关文章

  • PHP7新特性小结

    摘要:标量类型声明在中,引入了一个新的特性,即标量类型声明。弃用样式构造函数是与它们定义的类具有相同名称的方法,现在已被弃用,并且将来将被删除。 showImg(https://segmentfault.com/img/remote/1460000012438557?w=1024&h=456); 说明 PHP 7使用新的Zend Engine 3.0将应用程序性能提高近两倍,内存消耗比PHP...

    Steven 评论0 收藏0
  • PHP5.5 ~ PHP7.2 新特性整理

    摘要:以上例程会输出返回值类型声明增加了对返回类型声明的支持。整数除法函数从移植到可为空类型参数以及返回值的类型现在可以通过在类型前加上一个问号使之允许为空。对于函数来说,不是一个合法的返回值。对于返回值,子类可以拓宽父类的或对象返回值类型到。 PHP5.5 ~ PHP7.2 新特性整理 官方文档:http://php.net/manual/zh/appe... 一、从PHP 5.5.x ...

    mrcode 评论0 收藏0
  • 2018年腾讯前端一面总结(面向2019届学生)

    摘要:前言腾讯一面,相比阿里一面来说,腾讯一面先给打电话预定时间,这也给了我们这些面试者去准备的时间。其实闭包也就是指有权访问另一个函数作用域的函数而已。常用的创建闭包的方法就是在函数内部创建另一个函数。 前言 腾讯一面,相比阿里一面来说,腾讯一面先给打电话预定时间,这也给了我们这些面试者去准备的时间。但是也正是因为这种确定性,也有在等待电话的时候的心情的忐忑。 背景 我是一名大三学生,大一...

    Kosmos 评论0 收藏0
  • PHP小知识点

    摘要:那些琐碎的知识点作者记录的的很奇特很难记的知识点。易错知识点整理注意和的区别中和都是输出的作用,但是两者之间还是有细微的差别。今天手头不忙,总结一下,分享过程中掌握的知识点。 深入理解 PHP 之:Nginx 与 FPM 的工作机制 这篇文章从 Nginx 与 FPM 的工作机制出发,探讨配置背后的原理,让我们真正理解 Nginx 与 PHP 是如何协同工作的。 PHP 那些琐碎的知识...

    hover_lew 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<