PHP 如何动态实例化一个 class

PHP how to dynamically instantiate a class

我是 PHP 的新手,我尝试像这样动态实例化一个 class:

$var = new \App$str;

但是我一直收到这个错误:

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

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

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

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

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