在PHP5.4中对空php数组调用foreach安全吗?

在PHP5.4中对空php数组调用foreach安全吗?,php,arrays,php-5.4,Php,Arrays,Php 5.4,正如我所记得的,在做foreach之前,我总是要检查count($array)。 从那时起,我一直在进行双重检查,我想知道,现在使用PHP5.4有意义吗 我已将错误报告设置为E_ALL并执行以下脚本: $x = []; foreach($x as $y) { var_dump($y); } 没有得到通知(我记得,以前可能是php5.3),我得到了通知 现在在数组上使用foreach安全吗?它是空的?只要它是一个数组,就不需要检查其中的项目数量。只需确保传递一个实际的iterable对

正如我所记得的,在做foreach之前,我总是要检查count($array)。 从那时起,我一直在进行双重检查,我想知道,现在使用PHP5.4有意义吗

我已将错误报告设置为E_ALL并执行以下脚本:

$x = [];

foreach($x as $y) {
    var_dump($y);
}
没有得到通知(我记得,以前可能是php5.3),我得到了通知


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

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


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

枚举空数组总是安全的。你以前收到过什么通知?可能是因为其他问题?不,我确定,我记得我收到了一些关于空数组O_O的通知,不记得它的文本:(迭代空数组总是安全的。如果数组不存在或是
null
,那就另当别论了。好的..现在我很确定,谢谢!是不是为foreach()提供的
无效参数
?将不会显示在数组上,但是如果您定义了var而不是数组,则会显示。)。