搜尋

首頁  >  問答  >  主體

laravel - php靜態函數和公共方法的優劣

靜態函數好處:1.物件導向2.常駐內存,速度較快3.管理方便
如Yii::app()->params[$name];
公共方法好處: 1.呼叫方便
如app_param($name);
在設定一個功能的時候,該怎麼選擇建立成靜態函數還是公共方法?還是說現在都流行物件導向開發了?

typechotypecho2713 天前854

全部回覆(2)我來回復

  • 漂亮男人

    漂亮男人2017-06-26 10:51:16

    兩者的作用域不同,用途不同,首先來看呼叫靜態函數的語法,
    靜態函數:

    类名:方法

    公用函數:

    方法
    

    靜態函數是依託類,而方法是全域使用,例如現在需要一個將中文轉換為英文的方法,這種情況肯定是要放在公共方法裡,因為它通用性很高,依賴很小。再舉一個列子,我想在任何地方都能獲取博客的關注人數,Blog:subscribe(),這時候你用new(麻煩不說,執行效率也不如靜態類)或者放在公共函數裡,都是不合適,無疑靜態類別是最佳選擇。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-26 10:51:16

    兩者在性能消耗上差異並不大,一般而言,如果是一個需要全局使用的,但是又需要類屬性的方法,都會作為靜態方法,而全局使用,不需要類屬性的話,可以直接作為一個函數就OK。在程式碼規劃上這個是一個考慮重點,例如你更傾向於在物件導向上做得更合理,更規範,那就盡量減少靜態方法,程式碼規範上更統一。現在業務開發,更多還是物件導向更快速且可維護性更強。

    回覆
    0
  • 取消回覆