Массив в левой части уравнивающего выражения. "Неожиданная ошибка =" - PullRequest
1 голос
/ 20 марта 2020

Я пытаюсь запустить приложение Yii2 на apache сервере с версией 7.0 php. Версия пакета платформы Yii2:

yiisoft/yii2                        3.0.x-dev 9f215f3

Итак, когда я запускаю свою индексную страницу site.lo c в браузере, я получаю сообщение об ошибке

Parse error: syntax error, unexpected '=' in /var/www/html/remi-web.co/vendor/yiisoft/yii2/di/Container.php on line 365

Кусок кода, который вызвать ошибку:

 /* @var $reflection ReflectionClass */
    [$reflection, $dependencies] = $this->getDependencies($class);

Массив [] в левой части оператора equing. Я никогда раньше не сталкивался с подобными утверждениями, поэтому даже не знаю, где искать объяснения.

Я только что установил php7 .0 на Apache, поэтому, возможно, ему нужен какой-то модуль установлено или какое-либо свойство включено в настройках для его правильного запуска.

Существует часть подробностей phpinfo:

PHP Version 7.0.33-23+ubuntu18.04.1+deb.sury.org+1
Loaded Modules  core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_host mod_authz_user mod_autoindex mod_deflate mod_dir mod_env mod_filter mod_mime prefork mod_negotiation mod_php7 mod_reqtimeout mod_rewrite mod_setenvif mod_status 

Работает на рабочем сервере с PHP Версия 7.0.32, но не работает. не работает на моей локальной машине.

1 Ответ

3 голосов
/ 20 марта 2020

Начиная с PHP 7.1 у нас есть деструктурируемый набор массивов.

[$x,$y] = [1,2];
echo $x;  // gives 1

Это сокращение для list():

list($x,$y) = [1,2];
echo $x; // gives 1

Вы можете прочитать об этом PHP 7.1 функция здесь .

...