13

配列を返し、foreachに渡される関数があります。

foreach(function() as $val)

返す配列は一連のifステートメントで宣言されているため、すべてのifステートメントがfalseと評価された場合は、空の配列を返す必要があります。これは正しい方法ですか?

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

2 に答える 2

14

関数の一番上で宣言することをお勧めし$arr = array();ます。そうすれば、心配する必要はありません。

帰る直前にチェックをしているのならお勧めしませisset。使用方法はforeach、返される配列によって異なります。たとえば、が数値に設定されている場合$arrでも、検証されます。また、を確認する必要がありis_array()ます。例えば:

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

または、代わりに1行で:

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

しかし、私が言ったように、代わりに一番上で配列を宣言することをお勧めします。それは簡単で、心配する必要はありません。

于 2012-12-11T01:27:12.617 に答える
2

複雑さを避けるために、単に

return [];
于 2019-03-03T14:12:21.463 に答える