一,this
1,要用this,你必有是一個對像的形勢,不然它會報錯的,Fatal error: Using $this when not in object context。
2,this可以調用本類中的方法和屬性,也可以調用父類中的可以調的方法和屬性
二,self
1,self可以通路本類中的靜态屬性和靜态方法,可以通路父類中的靜态屬性和靜态方法。
2,用self時,可以不用執行個體化的
三,parent
1,parent可以通路父類中的靜态屬性和靜态方法。
2,用parent時,可以不用執行個體化的
四,執行個體
1,當我們調用$test->tank();這個方法時,tank裡面的$this是一個對像,這個對像可以調用本類,父類中的方法和屬性,
2,test1::test1_function();當我們用靜态的方法去調用非靜态方法時,會顯示警告的,Non-static method test::test1_function() should not be called statically可以看出不,self可以調用本類,父類中的靜态屬性,parent可以調用父類中的靜态屬性,二者調用非靜态屬性會報錯。代碼中有注釋
3,test1::extends_function();這一步會報錯,報在非對像中使用$this。為什麼會這樣呢,test1::extends_function();隻是調用了class中的一個方法,并沒有執行個體化,是以根本不存在什麼對像,當父類中用到$this時,就會報錯