Если я объявляю массив в среде оболочки, он не отображается в PHP.
Скаляр работает нормально. Например:
Shell скрипт:
declare -a TARGETS
TARGETS[0]="/etc"
TARGETS[1]="/boot"
export TARGETS
export HOST="localhost"
PHP:
$TARGETS = array ();
$TARGETS = getenv ("TARGETS");
$HOST = getenv ("HOST");
$ TARGETS будет пустым, а $ HOST будет содержать localhost.
phpinfo показывает $ HOST и его значение в разделе Environment. $ TARGETS отсутствует в выводе phpinfo: /
Я не могу найти ничего, что говорило бы, что массивы окружения не передаются в PHP, но так ли это на самом деле или я пропустил что-то очевидное?
Кстати, я также пробовал использовать $ _ENV и $ _SERVER с тем же результатом.
Это не то же самое, что bash: установить переменную env массива и разыграть ее из любого сценария оболочки не удается, как это было в 2012 году, когда Bash не поддерживал переменные массива. Теперь это так.
$TARGETS
не пустое, это логическоеfalse
. - person Álvaro González   schedule 18.05.2017