首頁  >  文章  >  後端開發  >  php實例方法的差異是什麼

php實例方法的差異是什麼

藏色散人
藏色散人原創
2020-08-31 09:21:592260瀏覽

php實例方法的差異有:1、靜態方法不需要new,而實例方法需要new;2、靜態方法中不能呼叫非靜態屬性;3、靜態方法在記憶體中只有一份,且在一個php生命週期內資源共享,而實例方法在記憶體中會存在多份的情況。

php實例方法的差異是什麼

推薦:《PHP影片教學

php靜態方法與實例方法的差異

PHP物件導向程式設計中,常常會接觸類別和方法,其中靜態方法和實例方法(非靜態方法)有什麼差別呢?怎麼選擇、應用更適合?請看下面的比較:

#區別點 靜態方法(static) #實例方法
呼叫 不需要new,類別名稱::方法名稱。

如:

1User::find();

注意:靜態方法中不能呼叫非靜態屬性。

需要new。

如:

12$userObj = new User;$userObj->find();
儲存 #在記憶體中只有一份,在一個php生命週期內,資源共享。
注意:靜態方法、屬性隨著類別的載入而載入,所以過多的靜態方法會消耗更多的記憶體。
每new一次,會開啟一份獨立的空間,也就是記憶體中會存在多份的情況。
性能 直接調用,不需要開闢空間等操作,時間上和效率上更勝一籌 需要一些時間進行開闢空間等操作
共享 共享同一個空間,同一份數據,所有某些場景下更適合用靜態方法 多個實例不共享同一空間和資料
鍊式寫法 不支援

支援。如:

1$userObj->fields('uid')->where('uid>0')->find();
#

以上是php實例方法的差異是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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