2015-10-28 2 views
1

В настоящее время я создаю скрипт конвертации. Я получил 6 баз данных, которые мне нужно использовать. Я использую PDO, и моя идея состоит в том, чтобы сделать все как можно меньше кода. Я хочу поместить свои базы данных в массив.Использование 'new CLASSNAME()' в качестве значения массива в PHP

Я попытался с помощью:

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

Я просто положил это в класс. Но netbeans уже дает синтаксическую ошибку в строке db1. И на странице это дает ошибку, которую я вставил. –

ответ

3

Цитируя PHP docs

declaration [of properties] may include an initialization, but this initialization must be a constant value -- that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.

Решение этой проблемы заключается в определении свойства как пустой массив, и либо использовать статический метод установки (если вы хотите использовать класс статически) или экземпляр объекта и заполнить массив в вашем конструкторе

+0

Спасибо, это дает мне понять. Я приму ответ, как только смогу. –

Смежные вопросы