突然间,我无法动态实例化一个类。如果我直接调用它,我可以实例化它,但用变量调用它不会起作用。这里有什么不起作用:
com_content
第一个实例化, $database_class = 'MysqlConnection';
$class = new MysqlConnection();
$other_class = new $database_class();
,工作正常。第二个,使$class
失败,并给出以下错误:
PHP致命错误:Class' MysqlConnection'在第47行的/pronounce-php/src/Database/Connect.php中找不到
我在这里做错了什么?如果有帮助的话,请看整个文件:
$other_class
答案 0 :(得分:5)
班级的实际名称是PronouncePHP\Database\Connection\MysqlConnection
。由于您已在文件顶部将其别名,因此您可以使用文字将其称为MysqlConnection
。这是因为文字在文字范围内是固定的,名称解析是明确的。
但是,变量中的字符串可以随时随地出现,因此无法实际解决use
语句。如果要将名称用作字符串变量,则需要使用完全限定名称:
$database_class = 'PronouncePHP\Database\Connection\MysqlConnection';