簡體   English   中英

PHP最佳實踐:使用混合返回類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM