Предопределенные(сервисные) переменные.

Предопределенные(сервисные) переменные.

Что такое предопределенные переменные?, это переменные имена которых зарезервировано системой. Каждый программист на PHP должен их знать, потому что имена предопределенных переменных нельзя использовать для личных целей, т.е. называть свои переменные именами предопределенных или проще говоря системных переменных.

Какие последствия могут быть при использовании в личных целях системных переменных?, все зависит от настройки сервера, т.е. приоритетах. Последствия могут быть следующие:
1)Ваша переменная изменит значение, а возможно и тип системной переменной, при этом ваш скрипт будет работать нормально, до переноса на другой сервер с другими настройками и/или операционной системой.
2)Ваша переменная не изменит значение системной переменной, при этом ваш сценарий не будет выполнятся должным образом, т.к. у системной переменой может быть другой тип и вы долго будете искать причину, пока не измените имена переменным.

Полный список предопределенных переменных:
$_SERVER - это массив в котором содержится все переменное окружение, т.е. все переменные, как серверные так и пользовательские.
$HTTP_HOST - имя хоста(сайта)
$HTTP_USER_AGENT - пользовательский клиент(браузер и его версия, а так-же операционная система).
$SERVER_SIGNATURE - краткая информация о сервере.
$SERVER_SOFTWARE - краткая информация об программах сервера(версия сервера, php и т.д.).
$SERVER_NAME - имя сервера.
$SERVER_ADDR - -адрес сервера
$SERVER_PORT - порт сервера
$REMOTE_ADDR - I.P. клиента(пользователя).
$DOCUMENT_ROOT - путь к корневой папке сайта.
$SERVER_ADMIN - адрес эл.почты администратора сервера.
$SCRIPT_FILENAME - Имя скрипта(файла)
$REMOTE_PORT - порт
$GATEWAY_INTERFACE - версия интерфейса.
$SERVER_PROTOCOL - версия протокола
$REQUEST_METHOD - метод передачи данных
$QUERY_STRING - все что передается после ?, т.е. все данные.
$REQUEST_URI - имя файла с QUERY_STRING.
$SCRIPT_NAME - имя файла.
$PHP_SELF - имя файла.
$HTTP_REFERER - адрес по которому перешел клиент.
$REQUEST_TIME - время выполнения сценария.
$_POST - Скрытые данные переданные по http(https), возможно массив.
$_GET - Открытые данные переданные по http(https), возможно массив.
$_SESSION - это массив с данными из сессии.
$_COOKIE - это массив с данными из кукиес.
$_REQUEST - системный массив, который в себе содержит переменные из POST, GET и COOKIE.
$_ENV - системный массив.
Обратите внимание что в этом списке переменные есть двух видов: 1)$name; 2)$_name, т.е. первые простые переменные, а вторые массивы, если первые можно просто вывести на печать, то к вторым нужно знать ключ к которому обратиться.

Простые переменные из списка выше можно вывести на печать только если глобальные переменные включены. Если глобальные переменные выключены то эти простые переменные можно использовать как ключи к массиву $_SERVER, т.е. например $_SERVER['HTTP_REFERER']

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

Из всего выше сказанного можно сделать вывод что все предопределенные переменные имеют имена в верхнем регистре, некоторые в О.С. WINDOWS имеют следующий вид: $SystemRoot, значит нам для использования остаются имена в нижнем регистре.
Соглашаться или не соглашаться с моим мнением это ваше право. По предопределенным переменным у меня все!!!