PHP中this、self、parent的區別
阿新 • • 發佈:2018-11-30
參考:
http://www.cnblogs.com/devcjq/articles/2424738.html
http://www.cnblogs.com/alsf/p/9621002.html
1.PHP之$this解析
①$this是指向當前物件(即類的例項化物件)的指標,靜態方法中不能使用$this。
靜態變數和靜態方法是屬於類,而非屬於類例項化後的物件,因此在靜態方法中無法使用$this。
②如果要在靜態方法中,強制使用類的其他方法,則只能先獲取類的例項化物件(new classname()),然後再使用該物件的方法。 ③當一個方法在類定義內部被呼叫時,有一個可用的偽變數 $this。$this 是一個到主叫物件的引用(通常是該方法所從屬的物件)。
2.PHP之self解析
self是指向當前類的指標,而非例項化後的物件指標
由於靜態變數和靜態方法是屬於類的,因此可以使用指向當前類的指標self呼叫。
3.PHP之parent解析
parent是指向父類的指標,一般用於呼叫父類的建構函式來初始化子類,如parent::__construct()
總結:this是指向物件例項的一個指標,在例項化的時候來確定指向;self是對類本身的一個引用,一般用來指向類中的靜態變數;parent是對父類的引用,一般使用parent來呼叫父類的建構函式。