如何自動獲取類名稱空間?動態獲取PHP類名稱空間
神奇的變種__NAMESPACE__
是不可靠的,因爲在子類中它沒有正確定義。
實施例:
class Foo\bar\A
- >__NAMESPACE__
===富\酒吧
class Ping\pong\B extends Foo\bar\A
- >__NAMESPACE__
===富\欄(應當平\乒乓)
PS:我注意到使用__CLASS__
,但我使用get_called_class()
解決了同樣的錯誤行爲...有沒有像get_called_class_namespace()
?我怎樣才能實現這樣的功能?
UPDATE:
我認爲解決的辦法是我自己的問題,因爲我意識到get_called_class()
回報完全合格的類名,因此我可以提取它的命名空間:d ...總之,如果有一個更有效做法讓我知道了;)
您的解決方案是我必須在個人代碼中完成的。 http://codepad.viper-7.com/EgObtf –
你所描述的並不是錯誤的行爲。看看這些常量是什麼:http://php.net/language.constants.predefined - 當你找到了解決問題的辦法時,你可以回答你自己的問題。 – hakre
檢查這一個。我想這就是你的意思是: http://stackoverflow.com/questions/2317343/get-child-class-namespace-from-superclass-in-php/20193599#20193599 – Chris