Оглавление

23.1. Массив $GLOBALS

Если директива register_globals имеет значение On, то все переменные окружения доступны через массив $GLOBALS. При настройке PHP мы отключили эту директиву, по этой причине переменные окружения попадут в указанный массив,  только  если  они  окажутся  в  глобальной  области  видимости. Чтобы увидеть  основные  переменные  окружения,  воспользуемся  функцией print_r():

<?php
// Присваиваем значение, чтобы $_SERVER попал 
// в глобальную область видимости
$var = $_SERVER['DOCUMENT_ROOT'];
echo "<pre>";
print_r($GLOBALS);
echo "</pre>";
?>

В итоге получим результат, показанный в листинге 38.

 
Листинг 38. Массив $GLOBALS

Array
(
    [GLOBALS] => Array
 *RECURSION*
    [_POST] => Array
        (
        )

    [_GET] => Array
        (
        )

    [_COOKIE] => Array
        (
        )

    [_FILES] => Array
        (
        )

    [_SERVER] => Array
        (
            [HTTP_USER_AGENT] => Opera/9.02 (Windows NT 5.1; U; ru)
            [HTTP_HOST] => localhost
            [HTTP_ACCEPT] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, */*;q=0.1
            [HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.9,en;q=0.8
            [HTTP_ACCEPT_CHARSET] => iso-8859-1, utf-8, utf-16, *;q=0.1
            [HTTP_ACCEPT_ENCODING] => deflate, gzip, x-gzip, identity, *;q=0
            [HTTP_CACHE_CONTROL] => no-cache
            [HTTP_CONNECTION] => Keep-Alive, TE
            [HTTP_TE] => deflate, gzip, chunked, identity, trailers
            [PATH] => C:\php5;C:\WINDOWS\system32;C:\WINDOWS
            [SystemRoot] => C:\WINDOWS
            [COMSPEC] => C:\WINDOWS\system32\cmd.exe
            [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
            [WINDIR] => C:\WINDOWS
            [SERVER_SIGNATURE] => <address>Apache/2.2.14 (Win32) PHP/5.3.0 Server at localhost Port 80</address>

            [SERVER_SOFTWARE] => Apache/2.2.14 (Win32) PHP/5.3.0
            [SERVER_NAME] => localhost
            [SERVER_ADDR] => 127.0.0.1
            [SERVER_PORT] => 80
            [REMOTE_ADDR] => 127.0.0.1
            [DOCUMENT_ROOT] => C:/Apache2/htdocs
            [SERVER_ADMIN] => unicross@mail.ru
            [SCRIPT_FILENAME] => C:/Apache2/htdocs/test.php
            [REMOTE_PORT] => 2035
            [GATEWAY_INTERFACE] => CGI/1.1
            [SERVER_PROTOCOL] => HTTP/1.1
            [REQUEST_METHOD] => GET
            [QUERY_STRING] =>
            [REQUEST_URI] => /test.php
            [SCRIPT_NAME] => /test.php
            [PHP_SELF] => /test.php
            [REQUEST_TIME] => 1258090142
        )

    [var] => C:/Apache2/htdocs
)

 

Все, что заключено в квадратные скобки, — это и есть переменные окружения. Если после имени переменной  стоит слово Array,  то  эта переменная  в свою очередь является массивом.

 
Перечислим суперглобальные массивы:
□ $_SERVER — массив переменных среды сервера;
□ $_FILES — массив переменных, определяющих отправленные через форму файлы;
□ $_POST — массив переменных, переданных посредством метода POST;
□ $_GET — массив переменных, переданных посредством метода GET;
□ $_COOKIE — массив cookies-переменных;
□ $_ENV — массив переменных, определяющих конфигурацию среды;
□ $_REQUEST — массив всех переменных, вводимых пользователем. В PHP 5.3 этот массив зависит от значения директивы request_order.

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

 

*/
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити