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

Jinsong Li

我到处搜寻,但找不到答案,所以我在这里。

在我的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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章