Синтаксическая ошибка в квадратных скобках Php

на моем localhost [PHP Version 5.5.9-1ubuntu4.5] этот код работает:

array($userName => ['score' => $score]); 

а также этот код работает:

 $this->Auth->user()['id'] 

но на производственном сервере [PHP Version 5.3.3-7 + squeeze23] в обоих случаях у меня есть ошибка:

Ошибка: Fatal Error (4): ошибка синтаксиса, неожиданная '['

что происходит? как я могу исправить это простейшим способом? (потому что изменение всех массивов в проекте крайне невыполнимо, и я даже не уверен, как управлять вторым случаем с помощью Auth …)

Related of "Синтаксическая ошибка в квадратных скобках Php"

Первый заключается в том, что новый синтаксис [] для создания экземпляров массивов работает только в 5.4 и выше . Итак, замените его на array() :

 // 5.4+ only: array($userName => ['score' => $score]); // 5.3 (and earlier) and 5.4+ array($userName => array('score' => $score)); 

Вторая – это другая функция 5.4 – доступ к массивам, возвращаемым из функций , где вы должны использовать временную переменную:

 // 5.4+ only: $this->Auth->user()['id'] // 5.3 (and earlier) and 5.4+: $result = $this->Auth->user() $result[id] 

Или, для предпочтения, обновите свой производственный сервер до версии PHP, которая немного более современна, чем используемая вами четырех- или пятилетняя версия. Чтобы сэкономить на большей части этих головных болей, вам либо нужно это сделать, либо начать развивать локально в 5.3. (Если вам нужно сделать последнее, я бы посмотрел на виртуализацию вашей установки разработки, чтобы вы могли работать в виртуальной коробке против 5.3 для более старых производственных систем.)

Этот синтаксис не поддерживается до версии php 5.4

Вы можете видеть это здесь:

http://php.net/manual/en/language.types.array.php

Синтаксис квадратной скобки для массивов был введен в php v. 5.4. То же самое касается использования возвращаемых значений функции или метода