Поиск…


Вступление

Суперглобалы - это встроенные переменные, которые всегда доступны во всех областях.

Несколько предопределенных переменных в PHP являются «суперглобальными», что означает, что они доступны во всех областях в сценарии. Нет необходимости делать global $variable; для доступа к ним в рамках функций или методов.

PHP5 SuperGlobals

Ниже приведены SuperGlobals PHP5

  • $ GLOBALS
  • $ _REQUEST
  • $ _GET
  • $ _POST
  • $ _FILES
  • $ _SERVER
  • $ _ENV
  • $ _COOKIE
  • $ _SESSION

$ GLOBALS : эта переменная SuperGlobal используется для доступа к глобальным переменным.

<?php    
$a = 10;    
function foo(){
    echo $GLOBALS['a'];
}    
//Which will print 10 Global Variable a
?>

$ _REQUEST : эта переменная SuperGlobal используется для сбора данных, представленных HTML-формой.

<?php
if(isset($_REQUEST['user'])){
    echo $_REQUEST['user'];
}
//This will print value of HTML Field with name=user submitted using POST and/or GET MEthod
?>

$ _GET : эта переменная SuperGlobal используется для сбора данных, представленных HTML-формой с методом get .

<?php
if(isset($_GET['username'])){
    echo $_GET['username'];
}
//This will print value of HTML field with name username submitted using GET Method
?>

$ _POST : эта переменная SuperGlobal используется для сбора данных, отправленных HTML-формой с использованием метода post .

<?php
if(isset($_POST['username'])){
    echo $_POST['username'];
}
//This will print value of HTML field with name username submitted using POST Method
?>

$ _FILES : эта переменная SuperGlobal содержит информацию о загруженных файлах через метод HTTP Post.

<?php
if($_FILES['picture']){
    echo "<pre>";
    print_r($_FILES['picture']);
    echo "</pre>";
}
/**
This will print details of the File with name picture uploaded via a form with method='post and with enctype='multipart/form-data'
Details includes Name of file, Type of File, temporary file location, error code(if any error occured while uploading the file) and size of file in Bytes.
Eg.

Array
(
    [picture] => Array
        (
            [0] => Array
                (
                    [name] => 400.png
                    [type] => image/png
                    [tmp_name] => /tmp/php5Wx0aJ
                    [error] => 0
                    [size] => 15726
                )
        )
)

*/
?>

$ _SERVER : эта переменная SuperGlobal содержит информацию о скриптах, заголовках HTTP и путях сервера.

<?php
    echo "<pre>";
    print_r($_SERVER);
    echo "</pre>";
    /**
    Will print the following details
    on my local XAMPP 
    Array
(
    [MIBDIRS] => C:/xampp/php/extras/mibs
    [MYSQL_HOME] => \xampp\mysql\bin
    [OPENSSL_CONF] => C:/xampp/apache/bin/openssl.cnf
    [PHP_PEAR_SYSCONF_DIR] => \xampp\php
    [PHPRC] => \xampp\php
    [TMP] => \xampp\tmp
    [HTTP_HOST] => localhost
    [HTTP_CONNECTION] => keep-alive
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*;q=0.8
    [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8
    [PATH] => C:\xampp\php;C:\ProgramData\ComposerSetup\bin;
    [SystemRoot] => C:\Windows
    [COMSPEC] => C:\Windows\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    [WINDIR] => C:\Windows
    [SERVER_SIGNATURE] => Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.6.12 Server at localhost Port 80
    [SERVER_SOFTWARE] => Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.6.12
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => ::1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => ::1
    [DOCUMENT_ROOT] => C:/xampp/htdocs
    [REQUEST_SCHEME] => http
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => C:/xampp/htdocs
    [SERVER_ADMIN] => postmaster@localhost
    [SCRIPT_FILENAME] => C:/xampp/htdocs/abcd.php
    [REMOTE_PORT] => 63822
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /abcd.php
    [SCRIPT_NAME] => /abcd.php
    [PHP_SELF] => /abcd.php
    [REQUEST_TIME_FLOAT] => 1469374173.88
    [REQUEST_TIME] => 1469374173
)
*/
?>

$ _ENV : эта переменная переменной среды оболочки SuperGlobal Variable, в которой работает PHP.

$ _COOKIE : эта переменная SuperGlobal используется для получения значения Cookie с заданным ключом.

<?php
$cookie_name = "data";
$cookie_value = "Foo Bar";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
}
else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}

/**
    Output
    Cookie 'data' is set!
    Value is: Foo Bar
*/
?>

$ _SESSION : эта переменная SuperGlobal используется для установки и получения значения сеанса, которое хранится на сервере.

<?php
//Start the session
session_start();
/**
    Setting the Session Variables
    that can be accessed on different
    pages on save server.
*/
$_SESSION["username"] = "John Doe";
$_SESSION["user_token"] = "d5f1df5b4dfb8b8d5f";
echo "Session is saved successfully";

/**
    Output
    Session is saved successfully
*/
?>

Суберглобалы объяснили

Вступление

Проще говоря, это переменные, доступные во всех областях ваших скриптов.

Это означает, что нет необходимости передавать их в качестве параметров в своих функциях или хранить их вне блока кода, чтобы они были доступны в разных областях.

Что такое суперглобальное?

Если вы думаете, что они похожи на супергероев - это не так.

Начиная с версии PHP 7.1.3 имеется 9 суперглобальных переменных. Они заключаются в следующем:

  • $GLOBALS - ссылки на все переменные, доступные в глобальной области
  • $_SERVER - информация о сервере и среде исполнения
  • $_GET - переменные HTTP GET
  • $_POST - переменные HTTP POST
  • $_FILES - переменные загрузки файлов HTTP
  • $_COOKIE - HTTP Cookies
  • $_SESSION - переменные сеанса
  • $_REQUEST - переменные запроса HTTP
  • $_ENV - переменные окружения

См. Документацию .

Расскажи мне больше, расскажи мне больше

Прошу прощения за ссылку Grease! Ссылка на сайт

Время для объяснения этих глобальных героев .

$GLOBALS

Ассоциативный массив, содержащий ссылки на все переменные, которые в настоящее время определены в глобальной области действия сценария. Имена переменных - это ключи массива.

Код

$myGlobal = "global"; // declare variable outside of scope

function test()
{
    $myLocal = "local"; // declare variable inside of scope
    // both variables are printed
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

test(); // run function
// only $myGlobal is printed since $myLocal is not globally scoped
var_dump($myLocal);
var_dump($myGlobal);

Выход

string 'local' (length=5)
string 'global' (length=6)
null
string 'global' (length=6)

В приведенном выше примере $myLocal не отображается во второй раз, потому что он объявлен внутри функции test() а затем уничтожен после закрытия функции.

Стать глобальным

Чтобы исправить это, есть два варианта.

Вариант один: global ключевое слово

function test()
{
    global $myLocal;
    $myLocal = "local";
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

Ключевое слово global является префиксом переменной, которая заставляет ее быть частью глобальной области.

Обратите внимание, что вы не можете назначить значение переменной в том же выражении, что и ключевое слово global. Следовательно, почему мне пришлось присваивать значение под ним. (Возможно, если вы удалите новые строки и пробелы, но я не думаю, что он global $myLocal; $myLocal = "local" . global $myLocal; $myLocal = "local" ).

Второй вариант: $GLOBALS array

function test()
{
    $GLOBALS["myLocal"] = "local";
    $myLocal = $GLOBALS["myLocal"];
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

В этом примере я переназначил $myLocal значение $GLOBAL["myLocal"] так как мне легче писать имя переменной, а не ассоциативный массив.

$_SERVER

$ _SERVER - это массив, содержащий информацию, такую ​​как заголовки, пути и места расположения сценариев. Записи в этом массиве создаются веб-сервером. Нет никакой гарантии, что каждый веб-сервер предоставит любой из них; серверы могут опускать некоторые или предоставлять другим, не перечисленным здесь. Тем не менее, большое количество этих переменных учитывается в спецификации CGI / 1.1 , поэтому вы сможете их ожидать.

Пример вывода этого может быть следующим (запуск на моем ПК с Windows с помощью WAMP)

C:\wamp64\www\test.php:2:
array (size=36)
    'HTTP_HOST' => string 'localhost' (length=9)
    'HTTP_CONNECTION' => string 'keep-alive' (length=10)
    'HTTP_CACHE_CONTROL' => string 'max-age=0' (length=9)
    'HTTP_UPGRADE_INSECURE_REQUESTS' => string '1' (length=1)
    'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36' (length=110)
    'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' (length=74)
    'HTTP_ACCEPT_ENCODING' => string 'gzip, deflate, sdch, br' (length=23)
    'HTTP_ACCEPT_LANGUAGE' => string 'en-US,en;q=0.8,en-GB;q=0.6' (length=26)
    'HTTP_COOKIE' => string 'PHPSESSID=0gslnvgsci371ete9hg7k9ivc6' (length=36)
    'PATH' => string 'C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;E:\Program Files\ATI Technologies\ATI.ACE\Core-Static;E:\Program Files\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\Intel(R) Managemen'... (length=1169)
    'SystemRoot' => string 'C:\WINDOWS' (length=10)
    'COMSPEC' => string 'C:\WINDOWS\system32\cmd.exe' (length=27)
    'PATHEXT' => string '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY' (length=57)
    'WINDIR' => string 'C:\WINDOWS' (length=10)
    'SERVER_SIGNATURE' => string '<address>Apache/2.4.23 (Win64) PHP/7.0.10 Server at localhost Port 80</address>' (length=80)
    'SERVER_SOFTWARE' => string 'Apache/2.4.23 (Win64) PHP/7.0.10' (length=32)
    'SERVER_NAME' => string 'localhost' (length=9)
    'SERVER_ADDR' => string '::1' (length=3)
    'SERVER_PORT' => string '80' (length=2)
    'REMOTE_ADDR' => string '::1' (length=3)
    'DOCUMENT_ROOT' => string 'C:/wamp64/www' (length=13)
    'REQUEST_SCHEME' => string 'http' (length=4)
    'CONTEXT_PREFIX' => string '' (length=0)
    'CONTEXT_DOCUMENT_ROOT' => string 'C:/wamp64/www' (length=13)
    'SERVER_ADMIN' => string '[email protected]' (length=29)
    'SCRIPT_FILENAME' => string 'C:/wamp64/www/test.php' (length=26)
    'REMOTE_PORT' => string '5359' (length=4)
    'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
    'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
    'REQUEST_METHOD' => string 'GET' (length=3)
    'QUERY_STRING' => string '' (length=0)
    'REQUEST_URI' => string '/test.php' (length=13)
    'SCRIPT_NAME' => string '/test.php' (length=13)
    'PHP_SELF' => string '/test.php' (length=13)
    'REQUEST_TIME_FLOAT' => float 1491068771.413
    'REQUEST_TIME' => int 1491068771

Там есть что взять, поэтому я подберу некоторые важные из них. Если вы хотите прочитать о них все, обратитесь к разделу индексов документации.

Я мог бы добавить их все ниже одного дня. Или кто-то может отредактировать и добавить хорошее объяснение им ниже? Подсказка, подсказка ;)

Для всех объяснений ниже предположим, что URL-адрес: http://www.example.com/index.php

  • HTTP_HOST - адрес хоста.
    Это вернет www.example.com
  • HTTP_USER_AGENT - содержимое пользовательского агента. Это строка, которая содержит всю информацию о браузере клиента, включая операционную систему.
  • HTTP_COOKIE - все куки в конкатенированной строке с разделителем с запятой.
  • SERVER_ADDR - IP-адрес сервера, на котором запущен текущий скрипт.
    Это вернет 93.184.216.34
  • PHP_SELF - имя файла текущего исполняемого скрипта относительно корня документа.
    Это вернет /index.php
  • REQUEST_TIME_FLOAT - отметка времени начала запроса с точностью до микросекунды. Доступно с PHP 5.4.0.
  • REQUEST_TIME - отметка времени начала запроса. Доступно с PHP 5.1.0.

$_GET

Ассоциативный массив переменных передается текущему скрипту через параметры URL.

$_GET - это массив, содержащий все параметры URL; это то, что есть после? в URL.

В качестве примера можно использовать http://www.example.com/index.php?myVar=myVal . Эта информация из этого URL-адреса может быть получена путем доступа в этом формате $_GET["myVar"] и результатом этого будет myVal .

Использование кода для тех, кому не нравится чтение.

// URL = http://www.example.com/index.php?myVar=myVal
echo $_GET["myVar"] == "myVal" ? "true" : "false"; // returns "true"

В приведенном выше примере используется тернарный оператор .

Это показывает, как вы можете получить доступ к значению из URL-адреса с помощью $_GET .

Теперь еще один пример! удушье

// URL = http://www.example.com/index.php?myVar=myVal&myVar2=myVal2
echo $_GET["myVar"]; // returns "myVal"
echo $_GET["myVar2"]; // returns "myVal2"

Можно отправить несколько переменных через URL, разделив их символом амперсанда ( & ).

Риск безопасности
Очень важно не отправлять какую-либо конфиденциальную информацию через URL-адрес, поскольку она останется в истории компьютера и будет видна всем, кто имеет доступ к этому браузеру.

$_POST

Ассоциативный массив переменных передается текущему скрипту с помощью метода HTTP POST при использовании приложений / x-www-form-urlencoded или multipart / form-data в качестве HTTP Content-Type в запросе.

Очень похоже на $_GET в том, что данные отправляются из одного места в другое.

Начну с примера. (Я пропустил атрибут action, поскольку это отправит информацию на страницу, в которой находится форма).

<form method="POST">
    <input type="text" name="myVar" value="myVal" />
    <input type="submit" name="submit" value="Submit" />
</form>

Выше - базовая форма, для которой данные могут быть отправлены. В реальной среде атрибут value не будет установлен, чтобы форма была пустой. Затем он отправляет любую информацию, вводимую пользователем.

echo $_POST["myVar"]); // returns "myVal"

Риск безопасности
Отправка данных через POST также небезопасна. Использование HTTPS обеспечит безопасность данных.

$_FILES

Ассоциативный массив элементов, загруженных в текущий скрипт с помощью метода HTTP POST. Структура этого массива описана в разделе загрузки POST-метода .

Начнем с базовой формы.

<form method="POST" enctype="multipart/form-data">
    <input type="file" name="myVar" />
    <input type="submit" name="Submit" />
</form>

Обратите внимание, что я пропустил атрибут action (снова!). Кроме того, я добавил enctype="multipart/form-data" , это важно для любой формы, которая будет касаться загрузки файлов.

// ensure there isn't an error
if ($_FILES["myVar"]["error"] == UPLOAD_ERR_OK)
{
    $folderLocation = "myFiles"; // a relative path. (could be "path/to/file" for example)
    
    // if the folder doesn't exist then make it
    if (!file_exists($folderLocation)) mkdir($folderLocation);

    // move the file into the folder
    move_uploaded_file($_FILES["myVar"]["tmp_name"], "$folderLocation/" . basename($_FILES["myVar"]["name"]));
}

Это используется для загрузки одного файла. Иногда вы можете загрузить несколько файлов. Для этого существует атрибут, он называется multiple .
Для любого атрибута есть атрибут. Мне жаль

Ниже приведен пример формы, представляющей несколько файлов.

<form method="POST" enctype="multipart/form-data">
    <input type="file" name="myVar[]" multiple="multiple" />
    <input type="submit" name="Submit" />
</form>

Обратите внимание на внесенные здесь изменения; их всего лишь несколько.

  • Имя input имеет квадратные скобки. Это потому, что теперь это массив файлов, и поэтому мы сообщаем форме, чтобы сделать массив выбранных файлов. Опущение квадратных скобок приведет к тому, что в последнем большинстве файлов будет установлено значение $_FILES["myVar"] .
  • Атрибут multiple="multiple" . Это просто говорит браузеру, что пользователи могут выбрать несколько файлов.
$total = isset($_FILES["myVar"]) ? count($_FILES["myVar"]["name"]) : 0; // count how many files were sent
// iterate over each of the files
for ($i = 0; $i < $total; $i++)
{
    // there isn't an error
    if ($_FILES["myVar"]["error"][$i] == UPLOAD_ERR_OK)
    {
        $folderLocation = "myFiles"; // a relative path. (could be "path/to/file" for example)
        
        // if the folder doesn't exist then make it
        if (!file_exists($folderLocation)) mkdir($folderLocation);

        // move the file into the folder
        move_uploaded_file($_FILES["myVar"]["tmp_name"][$i], "$folderLocation/" . basename($_FILES["myVar"]["name"][$i]));
    }
    // else report the error
    else switch ($_FILES["myVar"]["error"][$i])
    {
        case UPLOAD_ERR_INI_SIZE:
            echo "Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.";
            break;
        case UPLOAD_ERR_FORM_SIZE:
            echo "Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
            break;
        case UPLOAD_ERR_PARTIAL:
            echo "Value: 3; The uploaded file was only partially uploaded.";
            break;
        case UPLOAD_ERR_NO_FILE:
            echo "Value: 4; No file was uploaded.";
            break;
        case UPLOAD_ERR_NO_TMP_DIR:
            echo "Value: 6; Missing a temporary folder. Introduced in PHP 5.0.3.";
            break;
        case UPLOAD_ERR_CANT_WRITE:
            echo "Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.";
            break;
        case UPLOAD_ERR_EXTENSION:
            echo "Value: 8; A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.";
            break;
        
        default:
            echo "An unknown error has occured.";
            break;
    }
}

Это очень простой пример и не обрабатывает такие проблемы, как расширения файлов, которые не разрешены, или файлы с именем с кодом PHP (например, эквивалент PHP для SQL-инъекции). См. Документацию .

Первый процесс проверяет, есть ли какие-либо файлы, и если да, установите общее число из них в $total .

Использование цикла for позволяет итерации массива $_FILES и доступа к каждому элементу за раз. Если этот файл не сталкивается с проблемой, то оператор if является истинным и запускается код из одной загрузки файла.
Если возникла проблема, выполняется блок переключателя и отображается ошибка в соответствии с ошибкой для этой конкретной загрузки.

Ассоциативный массив переменных передается текущему скрипту через HTTP Cookies.

Куки-файлы - это переменные, которые содержат данные и хранятся на компьютере клиента.

В отличие от вышеупомянутых суперглобалов, файлы cookie должны быть созданы с помощью функции (и не назначать значение). Конвенция ниже.

setcookie("myVar", "myVal", time() + 3600);

В этом примере для файла cookie указывается имя (в этом примере это «myVar»), дается значение (в этом примере это «myVal», но переменная может быть передана для присвоения ее значения cookie), и затем дается время истечения (в этом примере это один час с 3600 секунд - минута).

Несмотря на то, что соглашение о создании cookie отличается от другого, к нему обращаются так же, как и другие.

echo $_COOKIE["myVar"]; // returns "myVal"

Чтобы уничтожить куки-файл, setcookie нужно вызвать снова, но время истечения времени устанавливается в любое время в прошлом. Увидеть ниже.

setcookie("myVar", "", time() - 1);
var_dump($_COOKIE["myVar"]); // returns null 

Это отключит файлы cookie и удалит их с клиентского компьютера.

$_SESSION

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

Сессии очень похожи на файлы cookie, за исключением того, что они являются серверными.

Чтобы использовать сеансы, вы должны включить session_start() в верхней части своих сценариев, чтобы разрешить использование сеансов.

Установка переменной сеанса такая же, как установка любой другой переменной. См. Пример ниже.

$_SESSION["myVar"] = "myVal";

При запуске сеанса случайный идентификатор устанавливается как файл cookie и называется «PHPSESSID» и будет содержать идентификатор сеанса для этого текущего сеанса. К этому можно обратиться, вызвав функцию session_id() .

Можно уничтожить переменные сеанса с помощью функции unset (такой, что unset($_SESSION["myVar"]) уничтожит эту переменную).
Альтернативой является вызов session_destory() . Это разрушит весь сеанс, означающий, что все переменные сеанса больше не будут существовать.

$_REQUEST

Ассоциативный массив, который по умолчанию содержит содержимое $_GET , $_POST и $_COOKIE .

Как указано в документации по PHP, это всего лишь сопоставление $_GET , $_POST и $_COOKIE всех в одной переменной.

Поскольку для всех трех этих массивов возможно иметь индекс с тем же именем, в файле php.ini называемом request_order который может указать, какой из трех имеет приоритет.
Например, если он был установлен в "GPC" , тогда будет использоваться значение $_COOKIE , так как оно считывается слева направо, что означает, что $_REQUEST установит значение $_GET , затем $_POST , а затем $_COOKIE и поскольку $_COOKIE является последним, это значение, которое находится в $_REQUEST .
См. Этот вопрос .

$_ENV

Ассоциативный массив переменных передается текущему скрипту через метод среды.

Эти переменные импортируются в глобальное пространство имен PHP из среды, в которой работает парсер PHP. Многие из них предоставляются оболочкой, под которой работает PHP, и в разных системах, вероятно, используются разные типы оболочек, окончательный список невозможен. Пожалуйста, ознакомьтесь с документацией вашей оболочки для списка определенных переменных среды.

Другие переменные среды включают переменные CGI, размещенные там независимо от того, работает ли PHP в качестве серверного модуля или процессора CGI.

Все, что хранится в $_ENV происходит из среды, из которой работает PHP.

$_ENV только заполняется, если позволяет php.ini .
См. Этот ответ для получения дополнительной информации о том, почему $_ENV не заполняется.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow