0
我无法动态实例化PHP中的类以在我的文件命名空间中工作。 PHP似乎完全不知道我的文件上的use
关键字,因为我尝试基于变量的值动态地实例化类。PHP:Instanciating命名空间类
有没有一个很好的解决方案,除了硬编码命名空间动态实例化类时?
下面是一些快速的样本,以说明我的意思:
代码new two('one')
;在结果类一个也没有找到与以下两个文件被包括:
文件1:
namespace uno;
use dos;
class one {
function __construct($what) {
new $what;
}
}
文件2:
namespace dos;
class two { }
文件3:
new one('two'); // Doesn't work!
嗨!我没有使用一个级别的命名空间,但为了在这里简化以获得一些答案而不让所有人都感到困惑,我决定在我的示例中跳过它们 – Industrial
无关紧要:它没有什么意义,级别的命名空间;)使用更深的命名空间更有意义'使用path \ to \ myNamespace; new myNamespace \ foo \ BarClass;'请注意'new'后面的标识符是如何从'use'语句的命名空间的最后部分开始的。 – KingCrunch
从我的观点来看问题是PHP忽略了我的动态实例化类的'use'关键字,即。 '新$什么'。任何想法呢? – Industrial