2011-03-27 27 views
2

我寫過一個函數,它返回成功時的數據,失敗時返回false。PHP:適當的布爾條件參數爲函數的返回值?

我想知道這是否被認爲是一種評估PHP返回值的正確方法。

function data(){ 
    if($all_is_good){ 
    return $data 
    }else{ 
    return false; 
    } 
} 

$data = data(); //basically either a long series of strings or arrays 

if(!$data){ //<-- this is the line I'm concerned about, is it safe to assume this? 
    echo 'oh no, bad stuff happened'; 
} 

非常感謝!

回答

4

你有什麼好,但也可以使用if($data === false) {。這確保$data實際上是false,考慮到0NULL也被視爲false

+0

空字符串'「」'也計算爲false。 – alanaktion 2013-05-28 17:23:08

1

這是安全的,除非$data的有效值將評估爲false。一串(即非空)的字符串或數組不會被評估爲假,但仍然是一個潛在的缺陷。

您可以考慮使用進行嚴格比較:if(data===False)

3

這取決於恰好$data是什麼(包括它的類型和它的價值)。如果它保持原樣(如果$data中的值的類型不確定)或明確檢查(例如$data == falseempty($data))(如果它是已知類型),則有意義。這真的取決於具體情況。

請參閱Converting to boolean

+0

+1鏈接到「轉換爲布爾值」。 – Mohammad 2011-03-27 17:20:52