溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php中的靜態(tài)方法和非靜態(tài)方法有什么區(qū)別

發(fā)布時(shí)間:2020-11-06 10:43:12 來源:億速云 閱讀:171 作者:小新 欄目:編程語言

這篇文章主要介紹php中的靜態(tài)方法和非靜態(tài)方法有什么區(qū)別,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

區(qū)別:1、非靜態(tài)方法可以訪問類中的任何成員,靜態(tài)方法只能訪問類中的靜態(tài)成員;2、靜態(tài)方法在定義類的時(shí)候就已經(jīng)裝載分配好了,非靜態(tài)方法在定義時(shí)沒有占用內(nèi)存,只有實(shí)例化為對象時(shí)才會(huì)被分配內(nèi)存。

php中的靜態(tài)方法和非靜態(tài)方法的區(qū)別

1、靜態(tài)方法屬于類所有,類實(shí)例化前即可使用。也就是不需要new一個(gè)對象就可以使用該對象的方法。比如object::fun1()這樣的格式;

2、非靜態(tài)方法可以訪問類中的任何成員,靜態(tài)方法只能訪問類中的靜態(tài)成員,不可以調(diào)用非靜態(tài)成員,但可以調(diào)非靜態(tài)方法(因?yàn)橄到y(tǒng)自動(dòng)把非靜態(tài)方法轉(zhuǎn)化為靜態(tài)方法)

3、靜態(tài)方法在定義類的時(shí)候就已經(jīng)裝載分配好了,非靜態(tài)方法在定義時(shí)沒有占用內(nèi)存,只有實(shí)例化為對象時(shí)才會(huì)被分配內(nèi)存

4、static內(nèi)部只能出現(xiàn)static變量和其他static方法(即靜態(tài)方法不能調(diào)用非靜態(tài)屬性 。也不能使用self::調(diào)用非靜態(tài)屬性)!而且static方法中還不能使用this等關(guān)鍵字,因?yàn)樗菍儆谡麄€(gè)類。靜態(tài)方法內(nèi)部調(diào)用其他靜態(tài)方法,可以使用self::方法名稱的形式來實(shí)現(xiàn);

5、靜態(tài)方法效率上要比實(shí)例化高,靜態(tài)方法的缺點(diǎn)是不自動(dòng)進(jìn)行銷毀,而實(shí)例化的則可以做銷毀;

6、靜態(tài)方法和靜態(tài)變量創(chuàng)建后始終使用同一塊內(nèi)存,而使用實(shí)例的方式會(huì)創(chuàng)建多個(gè)內(nèi)存。

主要區(qū)別:

靜態(tài)方法在創(chuàng)建對象前就可以使用了,非靜態(tài)方法必須通過new出來的對象調(diào)用。

靜態(tài)方法與實(shí)例方法在性能和占用內(nèi)存上沒有明顯的區(qū)別,是否聲明為靜態(tài)方法需要從類型的非靜態(tài)字段、事件、面向?qū)ο髷U(kuò)展和多態(tài)這三方面來考慮。

總結(jié):靜態(tài)的是不論實(shí)例化多少次結(jié)果最終只有一個(gè),而動(dòng)態(tài)的每次結(jié)果都不一樣。

以上就是php中的靜態(tài)方法和非靜態(tài)方法的區(qū)別是什么?的詳細(xì)內(nèi)容,更多請關(guān)注億速云其它相關(guān)文章!

以上是php中的靜態(tài)方法和非靜態(tài)方法有什么區(qū)別的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI