PHP如何动态实例化一个类

时间:2017-01-24 10:34:36

标签: php class dynamic instantiation

我是PHP新手,我尝试动态实例化这样的类:

$var = new \App\$str;

但我一直收到这个错误:

unexpected  variable $str after '\', expected: identifier.

我知道这是可能的,但我不确定具体的语法是什么,我找到的所有例子都没有我需要的\App\部分。

1 个答案:

答案 0 :(得分:5)

new运算符接受类名称标识符或包含类名的变量,但不接受它们的混合。

由于您的完全限定类名的一部分是未知的(动态),您应该将所有部分放入字符串变量中:

$class_name = 'A';
$namespace = '\\App';
$fully_qualified_class_name = "$namespace\\$class_name";
$var = new $fully_qualified_class_name;