1. 程式人生 > >PHP中this、self、parent的區別

PHP中this、self、parent的區別

參考:

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來呼叫父類的建構函式。