我正在尝试使用PHP 5.3的命名空间功能,我无法弄清楚如何使用命名空间前缀来实例化一个新类。
目前工作正常:
<?php
new $className($args);
?>
但是我怎样才能在变量类名前添加命名空间?以下示例不起作用。
<?php
new My\Namespace\$className($args);
?>
此示例产生:解析错误:语法错误,意外T_VARIABLE
答案 0 :(得分:16)
试试这个:
$class = "My\Namespace\$className";
new $class();
答案 1 :(得分:0)
这是我的做法:
$classPath = sprintf('My\Namespace\%s', $className);
$class = new $classPath;
请注意单引号而不是双引号。