PHP:如何从导入的命名空间动态创建类


PHP: how to dynamically create class from imported namespace?

我四处搜索,没有得到答案,所以我在这里。

在我的PHP文件中,我导入了一些命名空间,后来,我想动态创建一个导入的类,

但它不起作用,似乎PHP必须需要完整的类路径才能动态创建类,只有导入命名空间的别名不会这样做。 代码示例:
use some'foo; //import foo class
$b = 'foo'; $fullpath_b = 'some'foo';
$fullpath_b::static_function(); //this will work $b::static_function(); //this will not work

我的问题是,我只有导入的类"foo"的别名,而不是完整路径类"some''foo",

我怎么可能获得"foo"的完整路径名,以便我可以从中创建类? 如果我使用 new ReflectionClass() 来创建类,它也需要一个完整的路径。
注意:我不需要创建类的对象,只需要类。

感谢您的意见。

导入是在编译时执行的,目前无法确定导入的别名。有一个 rfc 可以将这种功能添加到反射中,但这似乎会被拒绝。

因此,如果要

在反射中使用它们或动态创建它们,则必须为类使用 FQN (http://php.net/manual/en/language.namespaces.importing.php)