我目前正在制作转换脚本。我有6个需要使用的数据库。我正在使用PDO,我的想法是尽可能使代码尽可能少。我想把我的数据库放在一个数组中。
我尝试使用:
private $databaseConnections = array(
'db1' => new PDO('mysql:host=localhost;dbname=db1;charset=utf8', 'user', 'pass'),
'db2' => new PDO('mysql:host=localhost;dbname=db2;charset=utf8', 'user', 'pass')
);
但是我收到了以下错误:
Parse error: syntax error, unexpected 'new' (T_NEW) in ... on line 11
为什么我不能将新PDO用作数组值?
答案 0 :(得分:3)
属性声明[]可以包含初始化,但是这个初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能被评估
解决方法是将属性定义为空数组,并使用静态setter(如果要静态使用该类)或实例化对象并在构造函数中填充数组