If your $_ENV array is mysteriously empty, but you still see the variables when calling getenv() or in your phpinfo(), check your http://us.php.net/manual/en/ini.core.php#ini.variables-order ini setting to ensure it includes "E" in the string.
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_ENV — Змінні оточення
Асоціативний масив (array) змінних, переданих до поточного скрипта через метод оточення.
Ці змінні імпортуються в глобальний простір імен PHP з оточення, в якому запущено PHP-парсер. Більшість передається через оболонку, під якою PHP запущено, причому різні системи, швидше за все, мають різні оболонки, а тому їх повний список відсутній. Необхідно ознайомитись з документацією конкретної оболонки, щоб отримати список визначених змінних оточення.
Інші змінні оточення, включаючи змінні CGI, там знаходяться незалежно від способу запуску PHP: як модуля сервера, чи як CGI-процесора.
Приклад #1 Використання $_ENV
<?php
echo "Моє ім'я користувача: " .$_ENV["USER"] . "!";
?>
Припустимо запустив цей скрипт "bjori"
Поданий вище приклад виведе щось схоже на:
Моє ім'я користувача: bjori!
Зауваження:
Це "суперглобальна" або автоматична глобальна змінна. Тобто ця змінна доступна будь-де в скрипті та її не потрібно оголошувати як global $variable;, щоб отримати доступ до неї всередині функції чи метода.
If your $_ENV array is mysteriously empty, but you still see the variables when calling getenv() or in your phpinfo(), check your http://us.php.net/manual/en/ini.core.php#ini.variables-order ini setting to ensure it includes "E" in the string.
Please note that writing to $_ENV does not actually set an environment variable, i.e. the variable will not propagate to any child processes you launch (except forked script processes, in which case it's just a variable in the script's memory). To set real environment variables, you must use putenv().
Basically, setting a variable in $_ENV does not have any meaning besides setting or overriding a script-wide global variable. Thus, one should never modify $_ENV except for testing purposes (and then be careful to use putenv() too, if appropriate).
PHP will not trigger any kind of error or notice when writing to $_ENV.