2014-05-18 57 views
0

我有以下hiearchy:PHP - 動態地獲得在靜態成員函數的類名

class A { 
    public static function getClass() { 
     return __CLASS__; 
    } 
} 

class B extends A {} 

class C extends B {} 

沒有在任一B或C覆蓋的getClass(),我想以下輸出:

echo A::getClass() // A 
echo B::getClass() // B 
echo C::getClass() // C 

目前,以上所有內容都只是輸出A.我如何實現所需的行爲?

+0

在'__CLASS__'的情況下,你嘗試'get_class($這個)'? –

+0

我無法使用$ this,因爲我沒有任何實例 - 方法是靜態的。 – csvan

回答

5

試試這個。

class A { 
    public static function getClass() { 
     return get_called_class(); 
    } 
} 

class B extends A {} 

class C extends B {} 

Here's the demo

+0

我只是討厭它,當有一個標準功能,它確實*我想要什麼,並且我對它有所瞭解。非常感謝你指出了這一點。 – csvan

+0

@chrsva不客氣。 –