3

可能重复:
带有动态类名的 PHP 命名空间

如何从字符串声明类?

代码

$name = 'the_class';
require_once $name.'.php';
$class = new \resource\$name();

错误

Parse error: syntax error, unexpected '$name' (T_VARIABLE), expecting identifier (T_STRING)
4

2 回答 2

6

您将需要动态构建命名空间路径

$classPath = '\\resource\\' . $name;
$class = new $classPath;

注意:我喜欢用文字反斜杠来明确。

于 2012-11-10T20:10:26.710 回答
4

命名空间需要是字符串的一部分:

$name = 'the_class';
require_once $name . '.php';
$className = '\resource\\' . $name;
$class = new $className();
于 2012-11-10T20:10:34.227 回答