PHP,命名空间中的新变量类

时间:2011-10-29 02:03:13

标签: php oop namespaces

我正在尝试使用PHP 5.3的命名空间功能,我无法弄清楚如何使用命名空间前缀来实例化一个新类。

目前工作正常:

<?php
new $className($args);
?>

但是我怎样才能在变量类名前添加命名空间?以下示例不起作用。

<?php
new My\Namespace\$className($args);
?>

此示例产生:解析错误:语法错误,意外T_VARIABLE

2 个答案:

答案 0 :(得分:16)

试试这个:

$class = "My\Namespace\$className";
new $class();

答案 1 :(得分:0)

这是我的做法:

$classPath = sprintf('My\Namespace\%s', $className);
$class = new $classPath;

请注意单引号而不是双引号。