1
的命名空間考慮下面的PHP代碼獲取不合格的類名
namespace foo\bar;
class MyClass {}
namespace xyz;
use foo\bar\MyClass;
class OtherClass {}
$a = new MyClass();
$b = new OtherClass();
$a
是\foo\bar\MyClass
一個實例,而$b
是\xyz\OtherClass
一個實例。這些完全合格的班級名稱,我可以致電get_class($a)
和get_class($b)
。但有沒有辦法獲得完全限定的名稱而不實例化對象?有沒有像神奇功能fully_qualified_class_name
這樣的fully_qualified_class_name('MyClass')
會返回\foo\bar\MyClass
和fully_qualified_class_name('OtherClass')
會返回\xyz\OtherClass
?或者我只需要自己寫完整的名字?
什麼'fully_qualified_class_name( 'MyClass的')使用類名稱解析'應該返回,如果存在'\富\酒吧\ MyClass'類和'\ foo \ anotherbar \ MyClass'類? – Federkun
這絕不會發生,因爲'use foo \ bar \ MyClass;使用foo \ anotherbar \ MyClass;'會導致致命的「名稱已被使用」 - 錯誤。 –