Если вы имеете опыт разработки традиционных приложений, то будете приятно удивлены уникальными характеристиками рабочей среды, не меняющими состояния. Такой сценарий не может работать в цикле и принимать ввод от пользователя до тех пор, пока не будет нажата кнопка в форме. Несмотря на то что всегда есть возможность сохранить состояние или набор переменных для набора переменных, я попытаюсь вдохновить вас на работу в стиле PHP. И скоро вы обнаружите, что то, что первоначально казалось ограничением, открывает новые возможности.
8.1. Предварительно сгенерированные переменные
Перед выполнением сценария PHP создает в суперглобальном пространстве имен набор переменных. Они будут доступны для функций и классов без какого-либо дополнительного объявления.
COOKIE
Переменная _COOKIE представляет собой массив файлов cookie, отправленных с браузера на сервер. Этот массив индексируется по именам файлов cookie.
_ENV
Переменная _ENV представляет собой массив переменных среды, существовавших при запуске сценария. Этот массив индексируется по именам переменных среды.
FILES
Массив _FILES (табл. 8.1) содержит всю информацию о загруженных файлах. Этот массив индексируется по именам переменных формы. Значения являются массивом c информацией. О загрузке файлов см. в главе 7, "Операции ввода-вывода и доступ к диску".
Браузер ввода-вывода
_GET
Массив _GET содержит значения всех полей, переданных с помощью метода GET. Этот массив индексируется по именам переменных, переданных при выполнении запроса.
GLOBALS
Массив GLOBALS содержит все переменные из глобального диапазона. php_errormsg
При включенном режиме track_errors эта переменная содержит строку описания последней ошибки и обновляется после каждой ошибки.
_POST
Массив _POST содержит значения всех полей, переданных с помощью метода POST. Этот массив индексируется по именам переменных, переданных при выполнении запроса.
REQUEST
Массив _REQUEST содержит переменные _GET, _POST, _COOKIES и _FILES. В слу­чае повторения имен переменных PHP записывает значения в соответствии с правилом, заданным директивой variables_order в конфигурационном файле php.ini.
_SERVER
Массив _SERVER содержит информацию о сервере и его среде. Ниже приведен перечень элементов массива _SERVER, в зависимости от Web-сервера или при запуске сценария из оболочки.
argc
При запуске из командной строки PHP поместит целое число, представляющее количество переданных аргументов.
argv
При запуске из командной строки PHP заменит эту переменную массивом. Каждый элемент массива соответствует одному переданному аргументу. В случае запуска с Web-сервера PHP размещает в этой переменной строку запроса. 
DOCUMENTROOT
Путь к каталогу документа. Для Web-сервера Apache типичным значением будет /usr/local/apache/htdocs.
GATEWAYINTERFACE
В этой переменной хранится версия интерфейса Common Gateway Interface (CGI), который используется в работе Web-сервера.
HTTP_ACCEPT
Эта переменная хранит информацию заголовка Accept, отправленного Web-сервером. Это список MIME-типов, разделенных запятыми.
HTTP_ACCEPT_CHARSET
Эта переменная хранит информацию заголовка Accept-Charset, отправленного Web-сервером.
HTTP_ACCEPT_ENCODING
Эта переменная хранит информацию заголовка Accept-Encoding, отправленного Web-сервером.
HTTP_ACCEPT_LANGUAGE
Эта переменная хранит информацию заголовка Accept-Language, отправленного Web-сервером.
HTTP_CONNECTION
Эта переменная хранит информацию заголовка Connection, отправленного Web-сервером.
HTTPHOST
Эта переменная хранит информацию заголовка Host, отправленного Web-сервером.
HTTP_REFERER
Эта переменная хранит информацию заголовка Referer, отправленного Web-сервером.
HTTP_USER_AGENT
Эта переменная хранит информацию заголовка User-Agent, отправленного Web-сервером.
PATHTRANSLATED
Путь к запрошенному PHP-сценарию.
PHP_AUTH_PW
Значение пароля, отправленного браузером.
PHP_AUTH_TYPE
Тип аутентификации.
PHP_AUTH_USER
Имя пользователя, отправленное браузером. PHPSELF
Путь к каталогу с запрошенным сценарием относительно каталога документов.
QUERYSTRING
Полная строка запроса.
REMOTE_ADDR
IP-адрес браузера.
REMOTE_PORT
Значение номера порта машины браузера, который используется для приема данных с сервера.
REQUESTMETHOD
Это значение отражает имя метода, использованного в запросе браузера. Он может содержать GET, HEAD, POST или PUT.
REQUEST_URI
Значение универсального идентификатора ресурса (Universal Resource Identifier, URI), запрошенного браузером. Из информации, содержащейся в окне адреса, исключены только транспортный протокол и имя сервера.
SCRIPT_FILENAME
Это значение представляет собой путь к локальной файловой системе, содержащей запрошенный сценарий.
SCRIPT_NAME
Значение внешнего пути к запрошенному сценарию.
SERVER_ADMIN
Электронный адрес администратора Web-сервера.
SERVER_NAME
Этим значением представлено имя домена сервера.
SERVER_PORT
Это значение представляет собой порт, по которому сервер ожидает поступление запросов.
SERVER_PROTOCOL
Это значение содержит описание версии протокола HTTP, используемого сервером.
SERVERSIGNATURE
Это значение представляет собой описание сервера.
SERVERSOFTWARE
Этим значением описывается программное обеспечение Web-сервера. SESSION
Массив _SESSION содержит переменные, размещенные во встроенных сеансах PHP.