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