靜態(tài)成員在PHP中是怎么繼承的?靜態(tài)成員,也就是用static修飾的變量或者方法,如果搞不清楚它們實現(xiàn)的原理,就很容易會出現(xiàn)一些錯誤。這次我們來研究的是在繼承中靜態(tài)成員的調用情況。首先來看這樣一段代碼: class A之前的文章中,我們有說過self的問題。self僅僅只是指向當前這個類。注意,是類,不是實例化后的對象。所以上面的輸出結果是: This is A!好了,有了這個基礎之后,我們知道靜態(tài)成員是和類有關的,和對象無關。那么以下的代碼也就更容易理解了。 class C直接讀代碼能推導出輸出的結果嗎?其實只要掌握了上文中所說的原則,這段代碼就很容易理解了。$c是靜態(tài)變量,$d是普通變量。通過類實例的add()方法進行操作后,$c因為是和類有關,所以不管是哪個實例對象,操作它之后都會是共享的。而$d作為普通變量,它的作用域僅限制在當前這個實例對象中。因此,輸出的結果是: c:2,d:2;最后,我們還是來復習一次self、parent和static關鍵字。 class E {t()輸出的三個結果是什么呢?詳情可以查看之前的文章PHP中的Static 測試代碼:https://github.com/zhangyue0503/dev-blog/blob/master/php/201912/source/%E9%9D%99%E6%80%81%E6%88%90%E5%91%98%E5%9C%A8PHP%E4%B8%AD%E6%98%AF%E6%80%8E%E4%B9%88%E7%BB%A7%E6%89%BF%E7%9A%84%EF%BC%9F.php 參考文檔:https://www./manual/zh/language.oop5.static.php |
|
|