Webzone Публикации PHP PHP - Глобальные массивы

PHP - Глобальные массивы

15:08 , 18 Июль 2019
PHP - Глобальные массивы

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

Всего массивов девять. Имена всех массивов записываются заглавными буквами, а начинается имя всегда с "$_" (кроме массива $GLOBALS).




$GLOBALS Массив содержит ссылки на все переменные, объявленные в данном скрипте. Это ассоциативный массив, в котором имена переменных являются ключами.
$_SERVER Массив содержит все данные о настройках среды выполнения скрипта и параметры сервера.
$_GET Список переменных, переданных скрипту методом GET, т.е. через параметры URL-запроса.
$_POST Список переменных, переданных скрипту методом POST.
$_COOKIE Массив содержит все cookies, которые сервер установил на стороне пользователя.
$_FILES Содержит список файлов, загруженных на сервер из формы. Более детально мы рассмотрим этот массив в уроке, посвящённом загрузке файлов на сервер.
$_ENV Содержит переменные окружения, установленные для всех скриптов на сервере.
$_REQUEST Этот массив объединяет массивы $GET, $POST и $COOKIE. очень часто бывает удобен при обработке пользовательских запросов, но применять его для защищённой обработки данных не стоит.
$_REQUEST Этот массив объединяет массивы $GET, $POST и $COOKIE. очень часто бывает удобен при обработке пользовательских запросов, но применять его для защищённой обработки данных не стоит.


$_SERVER

С помощью этого массива можно узнать практически всё о сервере, на котором исполняется скрипт. Например:



<?php

    echo "Операционная система: " . $_SERVER["OS"];
    echo "Web-сервер: " . $_SERVER["SERVER_SOFTWARE"];
    echo "Имя сервера: " . $_SERVER["SERVER_NAME"];
    echo "Адрес сервера: " . $_SERVER["SERVER_ADDR"];
    echo "Порт сервера: " . $_SERVER["SERVER_PORT"];
    echo "Адрес клиента: " . $_SERVER["REMOTE_ADDR"];
    echo "Путь к документам на сервере: " . $_SERVER["DOCUMENT_ROOT"] ;
    echo "Полный путь к текущему скрипту: " . $_SERVER["SCRIPT_FILENAME"] ;
    echo "Имя текущего скрипта: " . $_SERVER["PHP_SELF"] ;

?>




$_GET и $_POST

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



$_COOKIES

В массив $_COOKIES автоматически помещаются все cookies, которые получены от браузера. Механизм cookies мы подробно рассмотрим в соответствующем уроке. А пока вам достаточно запомнить, что есть глобальный массив, из которого в любое время можно узнать какие cookies установлены на стороне клиента.



$_REQUEST

Массив $_REQUEST объединяет три массива: $_POST, $_GET, $_COOKIES. В ранних версиях PHP сюда же входил массив $_FILES, но из соображений безопасности и производительности его исключили. Пользоваться массивом $_REQUEST очень удобно в случаях, когда нет разницы, каким методом был сделан запрос. Например, при постраничном выводе данных номер страницы можно передавать через URL ("index.php?page=3") методом GET, а можно через элемент формы методом POST. И в том и в другом случае переменная page попадёт в массив $_REQUEST.



$_SESSION

Предназначение массива $_SESSION - хранение всех переменных сессии текущего пользователя. Мы подробно рассмотрим механизм сессий в соответствующем уроке.

Глобальные массивы очень удобны в работе, но злоупортеблять ими не стоит, особенно массивом $_SESSION. Если переменной нужна только в локальной области видимости - не надо её делать глобальной. Слишком большое количество "лишних" переменных сильно снижает быстродействие и эффективность скрипта.

Вопросы / Комментарии / Отзывы