我目前正在制作一个转换脚本。我有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作为数组值?
引用PHP文档
声明[属性]可能包括一个初始化,但该初始化必须是一个常数值——也就是说,它必须能够在编译时进行求值,并且必须不依赖于运行时信息才能进行求值。
解决方案是将属性定义为空数组,然后使用静态setter(如果您想静态使用类),或者实例化对象并在构造函数中填充数组