我有一个函数返回一个数组,并传递给foreach即
foreach(function() as $val)
Run Code Online (Sandbox Code Playgroud)
由于我返回的数组是在一系列if语句中声明的,如果所有if语句都被计算为false,我需要返回一个空数组.这是一个正确的方法吗?
if (isset($arr))
return $arr;
else
return array();
Run Code Online (Sandbox Code Playgroud)
ceg*_*ult 11
我建议$arr = array();在函数的最顶层声明,这样你就不用担心了.
如果您在返回前立即进行检查,我不建议您这样做isset.您使用的foreach方式取决于返回的数组.$arr例如,如果设置为数字,则它仍将验证.你也应该检查一下is_array().例如:
if (isset($arr) && is_array($arr))
return $arr;
else
return array();
Run Code Online (Sandbox Code Playgroud)
或者在一行中:
return (isset($arr) && is_array($arr)) ? $arr : array();
Run Code Online (Sandbox Code Playgroud)
但是,就像我说的那样,我建议在顶部声明数组.它更容易,您不必担心它.