![](/img/trans.png)
[英]What is the PHP best practice for using functions that return true or false?
[英]PHP Best Practice: Using Mixed return types
我理解這個主題在這里簡要介紹了,但我希望了解在PHP中使用多個返回類型的一般做法和不做。 關於PHP的這個功能似乎有不同的意見。
我傾向於同意,正如上面鏈接的線程所指出的,對於錯誤,使用異常可能更合適; 但是,如果函數返回兩類有意義的值呢? 例如,假設一個函數返回一個房子里關閉的所有燈(:)是的,我正在甩它!)
從本質上講,這是我想要傳達的:如果基本條件沒有達到並且我沒有看到前進和計算我的列表的一點,我返回一個布爾值。 否則,請繼續這樣做:
public function getLightsThatAreOff($house)
{
// if $house itself does not have any power, return true
// else
//compile an array of lights that are off and return then
}
我認為上面提到的用例對於多種返回類型來說是一種甜蜜點。 在任何一種情況下,如果有人提供了一套關於如何確定是否使用此功能的一般指南,我將不勝感激。
謝謝!
即使記錄良好,混合類型也不好。 例如,如果一個方法返回一個數組,但沒有什么可以返回,那么它應該是一個空數組,而不是false或其他任何東西。 即
array()
這實際上取決於您打算如何使用這些功能。 即使您是大型開發團隊的一員,只要您有效地記錄代碼,那么您應該能夠安全地返回混合類型。 如果你為自己開發,那么只要你知道如何以及在何處使用你的功能它就沒關系。
不過,從個人經驗來看,我會說,無論什么時候你可以減輕錯誤的可能性,你都應該這樣做。 意思是,如果函數的預期返回值是數組,則應該返回空數組而不是布爾值(false)。 這樣,即使有人沒有閱讀你的文檔,最糟糕的情況是,當他們試圖遍歷數組時,沒有任何反應,腳本繼續。 如果您無法預見它會導致任何問題,我強烈建議您這樣做,而不是簡單地返回false。 我甚至無法計算當我返回false而不是一個結果數組(如果查詢失敗)時,我聽過“你的數據庫類被破壞了多少次”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.