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

$var = new \App\$str;

但我不断收到此错误:
unexpected  variable $str after '\', expected: identifier.

我知道有可能,但是我只是不确定确切的语法是什么,我发现的所有示例都没有我需要的\App\部分。

最佳答案

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

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

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

10-07 13:42
查看更多