PHP - 无法动态实例化类

时间:2015-06-24 06:25:52

标签: php symfony

突然间,我无法动态实例化一个类。如果我直接调用它,我可以实例化它,但用变量调用它不会起作用。这里有什么不起作用:

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

1 个答案:

答案 0 :(得分:5)

班级的实际名称是PronouncePHP\Database\Connection\MysqlConnection。由于您已在文件顶部将其别名,因此您可以使用文字将其称为MysqlConnection。这是因为文字在文字范围内是固定的,名称解析是明确的。

但是,变量中的字符串可以随时随地出现,因此无法实际解决use语句。如果要将名称用作字符串变量,则需要使用完全限定名称:

$database_class = 'PronouncePHP\Database\Connection\MysqlConnection';