2011-08-21 55 views
4

我知道我不能在PHP(5.3)中使用new ReflectionClass(static),因爲我剛剛嘗試過。有沒有其他方法來解決這個限制?PHP中靜態的ReflectionClass?

傳遞字符串不是一個選項,雖然以某種方式獲取類名字符串是可以接受的。但是,idk是否可以像我使用命名空間一樣工作。

感謝

+1

'static'是一個關鍵字,不是對象或類。你爲什麼期望它工作?你打算做什麼? – mario

+0

我知道我不會期望PHP將類和函數當作一等公民......但是我一直希望..>。> – Pwnna

回答

15

您可以使用get_called_class()獲取包含被叫類的字符串。

class Foo { 
    public static function getReflection() { 
    return new ReflectionClass(get_called_class()); 
    } 
} 

class Bar extends Foo {} 

$reflectBar = Bar::getReflection(); 
// reflectBar now holds a ReflectionClass instance for Bar