【问题标题】:Is it safe to call foreach on empty php arrays in PHP 5.4?在 PHP 5.4 中对空 php 数组调用 foreach 是否安全?
【发布时间】:2012-12-12 08:35:44
【问题描述】:

我记得,在进行 foreach 之前,我总是必须检查 count($array)。 从那时起,我总是做这个仔细检查,并想知道,现在使用 php 5.4 是否有意义?

我已将 error_reporting 设置为 E_ALL 并执行以下脚本:

$x = [];

foreach($x as $y) {
    var_dump($y);
}

并没有得到通知(我记得,以前可能是 php5.3)我得到了通知。

现在在数组上使用 foreach 是否安全,它是空的?

【问题讨论】:

  • 枚举一个空数组总是安全的。之前收到什么通知?也许是因为其他问题?
  • 不,我确定,我记得我收到了一些关于空数组 O_o 的通知,不记得是文本 :(
  • 迭代一个空数组一直是安全的。如果数组不存在或者是null,那就是另一回事了。
  • 好的..现在我可以确定了,谢谢!
  • Invalid argument supplied for foreach()吗?不会显示在数组上,但如果你定义了 var 但不是数组。

标签: php arrays php-5.4


【解决方案1】:

只要是数组,就不需要检查其中的项目数量。只需确保传递给它一个实际的可迭代对象:例如,不要传递随机对象或NULL

但是,foreach([] as $nothing) {} 是安全的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    相关资源
    最近更新 更多