在php中返回空数组

zhe*_*ing 10 php arrays

我有一个函数返回一个数组,并传递给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)

但是,就像我说的那样,我建议在顶部声明数组.它更容易,您不必担心它.