簡介
如果是剛入門不久或較少比較久未使用者,往往比較容易搞混這三者之間的關係,網上的文章五花八門,不夠簡潔
在接下來的文章裡,將省去干擾與花裡胡哨的東西
讀這文章需要理解的基本知識:PHP 繼承、封裝、多型
this
英文解釋:這,這個
當一個方法在類定義內部被呼叫時,有一個可用的偽變數 $this。$this 是一個到主叫物件的引用(通常是該方法所從屬的物件,但如果是從第二個物件靜態呼叫時也可能是另一個物件)。
this 就是表示當前物件,從當前物件依次往上找,不存在或無許可權則報錯
self
英文解釋:自己
使用 self:: 或者 CLASS 對當前類的靜態引用,取決於定義當前方法所在的類
從 self::test
使用的『類』依次往上找 test
(重寫優先),不存在或無許可權則報錯
在使用 self::test
時就得保證 test
是存在滴
static
英文解釋:靜態
該功能從語言內部角度考慮被命名為“後期靜態繫結”。“後期繫結”的意思是說,static:: 不再被解析為定義當前方法所在的類,而是在實際執行時計算的。也可以稱之為“靜態繫結”,因為它可以用於(但不限於)靜態方法的呼叫。
執行時,static::test
從最後的子『類』依次往上找 test
(子類優先),不存在或無許可權則報錯國
在使用 static::test
時 test
可以不存在,執行時 test
存在即可
本作品採用《CC 協議》,轉載必須註明作者和本文連結