任何人都可以解释为什么以下代码导致“无法找到类”错误?使用完全限定名称实例化类,但消除了“use”语句的优点。
<?php
namespace
{
use Foo\Bar;
new Bar; // Works
$class = 'Foo\Bar';
new $class; // Works
$class = 'Bar';
new $class; // "Cannot find class" error
}
namespace Foo
{
class Bar {}
}
由于
答案 0 :(得分:2)
嗯,我想它实际上是feature。别名在这里没有帮助,原因相同:
导入在编译时执行,因此不会影响动态 类,函数或常量名。 [...]
<?php
use My\Full\Classname as Another, My\Full\NSname;
$obj = new Another; // instantiates object of class My\Full\Classname
$a = 'Another';
$obj = new $a; // instantiates object of class Another
?>
是的,它有点破坏use
与动态类的目的。