Суперглобальные переменные
Алтернативная запись циклов - это альтернативный синтаксис для некоторых его управляющих структур, а именно: if
, while
, for
, foreach
и switch
.
Суперглобальные переменные
В PHP есть специальные переменные, которые называются суперглобальными, они обеспечивают удобный способ доступа к информации об окружении сценария - от настроек сервера до введенных пользователем данных.
Суперглобальные переменные - являются встроенными переменными, которые всегда доступны во всех областях видимости.
Стоит отметить, что суперглобальные переменные определены как массивы. Ниже представлен полный список суперглобальных переменных:
Имя переменной | Описание |
---|---|
$GLOBALS | Содержит все глобальные переменные, доступные локальному сценарию. Имена переменных используются в качестве индексов массива. |
$_SERVER | Содержит информацию об окружении веб-сервера. |
$_GET | Содержит информацию о запросах GET (при отправке форм). Эти значения следует обязательно проверять перед использованием. |
$_POST | Содержит информацию о запросах POST (другой тип отправки данных формы). Эти значения следует обязательно проверять перед использованием. |
$_FILES | Содержит информацию о файлах, загружаемых методом POST. |
$_COOKIE | Содержит информацию о cookies HTTP . |
$_SESSION | Содержит информацию из всех переменных, зарегистрированных в рамках сессии. |
$_REQUEST | Содержит информацию о пользовательском вводе. Эти значения следует обязательно проверять перед использованием. Вместо этого массива следует использовать $_GET или $_POST , т.к. они более специализированные. |
$_ENV | Содержит информацию об окружении сценариев. |
$GLOBALS
Ассоциативный массив (array
), содержащий ссылки на все переменные глобальной области видимости скрипта, определенные в данный момент. Имена переменных являются ключами массива.
$x = 2;
function my_func() {
echo $_GLOBAL["x"]++ // инкрементирование глобальной переменной
}
См. sample1.html, sample1.php
$_SERVER
Переменная $_SERVER
- это массив, содержащий информацию, такую как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером. Нет гарантии, что каждый веб-сервер предоставит любую из них; сервер может опустить некоторые из них или предоставить другие, не указанные здесь.
Ниже приведён пример некоторых индексов $_SERVER
HTTP_USER_AGENT
- Эта строка содержит обозначение браузера, которым пользователь запросил данную страницу. Вы можете использовать это значение с функцией
get_browser()
чтобы адаптировать вывод вашей страницы к возможностям браузера пользователя REMOTE_ADDR
- IP-адрес, с которого пользователь просматривает текущую страницу.
SERVER_ADDR
- IP адрес сервера, на котором выполняется текущий скрипт.
PHP_SELF
- Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например,
$_SERVER['PHP_SELF']
в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php. HTTP_REFERER
- Адрес страницы (если есть), которая привела браузер пользователя на эту страницу. Этот заголовок устанавливается веб-браузером пользователя. Не все браузеры устанавливают его и некоторые в качестве дополнительной возможности позволяют изменять содержимое заголовка HTTP_REFERER. Одним словом, в самом деле ему нельзя доверять.
См. sample2.php
$_GET
Ассоциативный массив параметров, переданных скрипту через URL.
echo $_GET["name"] // вывод одного из параметров
См. sample3.php
$_POST
Ассоциативный массив данных, переданных скрипту через HTTP метод POST.
echo $_POST["name"] // вывод одного из параметров
См. sample4.php
$_FILES
Ассоциативный массив (array
) элементов, загруженных в текущий скрипт через метод HTTP POST.
Загрузка файлов методом POST
Страница для загрузки файлов может быть реализована при помощи специальной формы, которая выглядит примерно так:
<form action="nameScript.php" method="POST" enctype="multipart/form-data" >
<input name="userfile" type="file">
<input type="submit">
</form>
Следует убедиться, что в атрибутах формы вы указали enctype="multipart/form-data"
, в противном случае загрузка файлов на сервер выполняться не будет.
$_FILES
содержит всю информацию о загруженных файлах. Обратите внимание, что здесь предполагается использование имени userfile для поля выбора файла, как и в приведенном выше примере. На самом деле имя поля может быть любым.
$_FILES['userfile']['name']
- Оригинальное имя файла на компьютере клиента.
$_FILES['userfile']['type']
- Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif". Этот mime-тип не проверяется в PHP, так что не полагайтесь на его значение без проверки.
$_FILES['userfile']['size']
- Размер в байтах принятого файла.
$_FILES['userfile']['tmp_name']
- Временное имя, с которым принятый файл был сохранен на сервере.
$_FILES['userfile']['error']
- Код ошибки, которая может возникнуть при загрузке файла.
По умолчанию принятые файлы сохраняются на сервере в стандартной временной папке.
Для перемещения загруженого файла в новое место используется функция move_uploaded_file()
.
bool move_uploaded_file ( string $filename , string $destination );
Эта функция проверяет, является ли файл filename
загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе destination
.
См. sample5-7.html
Загрузка файла пример 1
Загрузка файла пример 2
Загрузка файла пример 3
$_COOKIE
Ассоциативный массив (array
) значений, переданных скрипту через HTTP cookies.
Cookies
- это механизм хранения данных браузером удаленной машины для отслеживания или идентификации возвращающихся посетителей.
Для установки сookies
используется функция setcookie()
. Для этой функции можно указать шесть параметров, один из которых является обязательным:
См. sample8-11.html
Работа с $_COOKIES
пример 1
Работа с $_COOKIES
пример 2
Работа с $_COOKIES
пример 3
Работа с $_COOKIES
пример 4
$_SESSION
Ассоциативный массив, содержащий переменные сессии, которые доступны для текущего скрипта.
Сессии PHP представляют собой различные способы сохранения данных для дальнейшего доступа к ним. Они позволяют создавать более гибкие приложения и улучшают привлекательность вашего сайта. Подробная информация находится в справочнике сессий.
Поддержка сессий в PHP заключается в способе сохранения некоторых данных между несколькими последовательными доступами к веб-сайту.
$_REQUEST
Ассоциативный массив (array
), который по умолчанию содержит данные переменных $_GET
, $_POST
и $_COOKIE
.
$_ENV
Ассоциативный массив (array
) значений, переданных скрипту через переменные окружения.
Эти значения импортируются в глобальное пространство имен PHP из системных переменных окружения, в котором запущен парсер PHP. Большинство значений передаётся из командной оболочки, под которой PHP запущен, и различных системных приложений, полного и точного списка не существует. Пожалуйста, изучите документацию к вашей командной оболочке для получения списка переменных окружения.