2012-12-11 160 views
9

我有一个返回一个数组,并传递到的foreach即在PHP返回空数组

foreach(function() as $val) 

因为我返回数组一系列的if语句声明的功能,我需要返回如果所有if语句的计算结果为false,则为空数组。这是一个正确的方法吗?

if (isset($arr)) 
    return $arr; 
else 
    return array(); 

回答

11

我会建议在函数的最顶端声明$arr = array();,所以你不必担心。

如果您在返回前立即检查,我做了而不是推荐isset。你使用的方式是foreach取决于返回的数组。例如,如果$arr设置为一个数字,那么它仍然会验证。您还应该检查is_array()。例如:

if (isset($arr) && is_array($arr)) 
    return $arr; 
else 
    return array(); 

或者在一个行:

return (isset($arr) && is_array($arr)) ? $arr : array(); 

但是,就像我说的,我建议在最高层的声明,而不是数组。这很容易,你不必担心它。

+0

谢谢!我最初想要在顶部声明一个空数组,所以你就是这样做的。 – zhenming