我是PHP新手,我尝试动态实例化这样的类:
$var = new \App\$str;
但我一直收到这个错误:
unexpected variable $str after '\', expected: identifier.
我知道这是可能的,但我不确定具体的语法是什么,我找到的所有例子都没有我需要的\App\
部分。
答案 0 :(得分:5)
new
运算符接受类名称标识符或包含类名的变量,但不接受它们的混合。
由于您的完全限定类名的一部分是未知的(动态),您应该将所有部分放入字符串变量中:
$class_name = 'A';
$namespace = '\\App';
$fully_qualified_class_name = "$namespace\\$class_name";
$var = new $fully_qualified_class_name;