我有一个返回数组的函数,并传递给foreach,即。
foreach(function() as $val)
由于我返回的数组是在一系列if语句中声明的,所以如果所有if语句都被计算为false,我需要返回一个空数组。这是一个正确的方法吗?
if (isset($arr))
return $arr;
else
return array();
答案 0 :(得分: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();
但是,就像我说的那样,我建议在顶部声明数组。它更容易,你不必担心它。
答案 1 :(得分:0)
为避免复杂性,只需
return [];