如何从string中声明命名空间中的类

时间:2012-11-10 20:07:49

标签: php

  

可能重复:
  PHP namespace with Dynamic class name

如何从字符串声明类?

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

错误

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

2 个答案:

答案 0 :(得分:6)

您需要dynamically construct the namespace path

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

注意:我喜欢明确literal backslashes

答案 1 :(得分:4)

命名空间必须是字符串的一部分:

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