首頁 >後端開發 >PHP問題 >PHP中動態類別與靜態類別的差異是什麼

PHP中動態類別與靜態類別的差異是什麼

小老鼠
小老鼠原創
2023-04-17 17:52:121328瀏覽

PHP中動態類與靜態類的區別:1、使用頻繁的是靜態類,用的少的是動態類;2、靜態類速度快,佔內存,動態類速度相對慢些,但調用完後立即釋放可以節省內存,根據自身需要選擇;3、對比較大內存的伺服器來說,設置為靜態的話會提高效率,對比較小內存的伺服器來說,動態方式會結束掉多餘進程,可以回收釋放一些記憶體。

PHP中動態類別與靜態類別的差異是什麼

本教學作業系統:Windows10系統、PHP8.1.3版、Dell G3電腦

PHP中動態類別與靜態類別的區別

靜態的方法在整個應用程式其間儲存在記憶體中,速度快,但佔用記憶體。 

class A

  {

      public static string b()

      {

          return "Hello";

      }

  }

用法

A.b();      //调用方便

動態的方法在先宣告類別實例才能呼叫類別中的方法。

class A

{

    public string b()

    {

        return "Hello";

    }

}

用法

A  a  =  new  a();      
a.b();

一般使用頻繁的方法用靜態方法,用的少的方法用動態的。

靜態的速度快,佔記憶體。動態的速度相對慢些,但調用完後,立即釋放類,可以節省內存,可以根據自己的需求選擇是用動態方法還是靜態方法。

所以動態方式因為會結束掉多餘進程,可以回收釋放一些內存,所以推薦在記憶體較少的伺服器上使用。建議根據伺服器的負載情況來設置,比較合適的值在5到10之間。

比較較大記憶體的伺服器來說,設定為靜態的話會提高效率。因為頻繁開關php-fpm程序也會有時滯,所以記憶體夠大的情況下開靜態效果會更好。

靜態方法主要的問題就是資料同步的問題。如果你的靜態方法的類別中不保存私有變數那麼什麼問題都不會有的。最好是包要操作的資料全部以參數的方式傳到方法中去。

靜態方法是類別方法,呼叫時不需要建立類別實例。

動態方法是靜態綁定到子類,不是被繼承。

靜態方法修改的是類別的狀態,而動態修改的是各個物件的狀態,這點也是它們重要的區別

動態類別的實例化呼叫是在類別的生命週期中存在,當類別沒有了以後,對應的實例也就沒有了,對應的方法也就沒有了,靜態類別不然,只要你引用了那個靜態類別的命名空間,他就會一直存在,直到你退出系統。

以上是PHP中動態類別與靜態類別的差異是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn