使用 self:: 或者 __CLASS__對當前類的靜態參照,取決於定義當前方法所在的類:
使用 static:: 不再被解析為定義當前方法所在的類,而是在實際執行時計算的。也可以稱之為「靜態系結」,因為它可以用於(但不限於)靜態方法的呼叫。
靜態系結是PHP 5.3.0,增加的一個功能 用於在繼承範圍內參照靜態呼叫的類
簡單通俗的來說,
self就是寫在哪個類裡面, 實際呼叫的就是這個類.
static代表使用的這個類, 就是你在父類別裡寫的static,然後被子類覆蓋,使用的就是子類的方法或屬性
<?php class Person { public static function name() { echo "111"; echo "<br />"; } public static function callself() { self::name(); } public static function callstatic() { static::name(); } } class Man extends Person { public static function name() { echo "222"; echo "<br />"; } } Man::callself(); // output: 111 Man::callstatic(); // output: 222 ?>以上就是PHP中static和self的區別的詳細內容,更多請關注TW511.COM其它相關文章!