$c = 'MyClass';
$obj = new $c(); // its ok
现在我想对命名空间做同样的事情:
$c = 'MyClass';
$obj = new \my\namespace\$c(); // syntax error, unexpected '$c'(T_VARIABLE)
怎么做?
答案 0 :(得分:0)
您需要使用自己的字符串中的变量来定义命名空间(注意"命名空间"是保留字,而不是有效的命名空间 - 在此示例中已更改):
$c = 'MyClass';
$fqcn = '\\my\\namespaceXYZ\\' . $c;
$obj = new $fqcn();