在 PHP 裡,在沒有繼承時候,你用self::class 和 static::class是一樣的,都是獲取當前類名。
但是如果用到了繼承,並且這個方法寫在了父類裡,你想要分別獲取當前父類名和未知的子類名,就要按照下面的方法進行獲取。
在 PHP 類中,self指向的是當前方法存在的這個類,也就是父類。static指向的是最終那個子類。
<?php
class P{
public static function getParent(){
return self::class;
}
public static function getChild(){
return static::class;
}
}
class C extends P{
}
echo c::getParent() ; // 輸出P
echo c::getChild(); //輸出C
本作品採用《CC 協議》,轉載必須註明作者和本文連結