Каков синтаксис PHP для оператора [$ var1, $ var2] = someMethod () ;? - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь заставить Illuminate / Database работать над моим приложением PHP, и он неоднократно жалуется на код в библиотеке, который выглядит следующим образом:

[$value, $key] = static::explodePluckParameters($value, $key);

А вот ошибка с веб-сервера:

Parse error: syntax error, unexpected '=' in /home/vol1_1/epizy.com/epiz_24040130/file-planner-rg.epizy.com/htdocs/vendor/illuminate/support/Arr.php on line 388

Мне удалось решить предыдущий случай, когда это произошло, с использованием более старой версии библиотеки (в настоящее время 5,7 согласно моему ограничению версии composer.json).

Я пытался найти это, но не совсем уверен, что представляют переменные в скобках в PHP. Это школа кодирования, в которую я пытаюсь попасть.

Ответы [ 2 ]

2 голосов
/ 14 июня 2019

[$variable1, $variable2] = someCall(); - короткий синтаксис для деконструирующего массива присваивания.Он был представлен в PHP 7.1.У вас может быть более старая версия.Использование list() должно работать:

list($value, $key) = static::explodePluckParameters($value, $key);
2 голосов
/ 14 июня 2019

Разрушение симметричного массива было введено в PHP 7.1 (это самая старая версия PHP, которая до сих пор получает обновления безопасности; вам не следует использовать что-либо более старое).

...