我到处搜寻,但找不到答案,所以我在这里。
在我的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] 删除。
我来说两句