2012-12-11 157 views
9

我有一個返回一個數組,並傳遞到的foreach即在PHP返回空數組

foreach(function() as $val) 

因爲我返回數組一系列的if語句聲明的功能,我需要返回如果所有if語句的計算結果爲false,則爲空數組。這是一個正確的方法嗎?

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

回答

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(); 

但是,就像我說的,我建議在最高層的聲明,而不是數組。這很容易,你不必擔心它。

+0

謝謝!我最初想要在頂部聲明一個空數組,所以你就是這樣做的。 – zhenming