Суперглобальные были введены в PHP 4.1.0, и встроенные переменные, которые всегда доступны во всех областях.
PHP глобальные переменные - Суперглобальные
Несколько предопределенных переменные в PHP являются "superglobals" , что означает , что они всегда доступны, независимо от объема - и вы можете получить к ним доступ из любой функции, класса или файла без необходимости делать что - нибудь особенное.
РНР суперглобальном переменные:
- $ GLOBALS
- $ _SERVER
- $ _REQUEST
- $ _POST
- $ _GET
- $ _FILES
- $ _ENV
- $ _COOKIE
- $ _SESSION
Эта глава описывает некоторые из суперглобальных, а остальное будет объяснено в последующих главах.
PHP $ GLOBALS
$ GLOBALS является PHP супер глобальная переменная, которая используется для доступа к глобальным переменным из любого места в PHP скрипт (также в функциях или методах).
PHP хранит все глобальные переменные в массиве с именем $ GLOBALS [ index ]. Индекс содержит имя переменной.
В приведенном ниже примере показано, как использовать супер глобальной переменной $ GLOBALS:
пример
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] =
$GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
Выполнить пример » В приведенном выше примере, так как г переменная присутствует в массиве $ GLOBALS, он также доступен из вне функции!
PHP $ _SERVER
$ _SERVER является PHP супер глобальная переменная, которая содержит информацию о заголовках, пути и местоположения скриптов.
В приведенном ниже примере показано, как использовать некоторые элементы в $ _SERVER:
пример
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo
$_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo
$_SERVER['SCRIPT_NAME'];
?>
Выполнить пример » В следующей таблице перечислены наиболее важные элементы, которые могут пойти в $ _SERVER:
Элемент / Код | Описание |
---|---|
$ _SERVER [ 'PHP_SELF'] | Возвращает имя файла в данный момент скрипта |
$ _SERVER [ 'GATEWAY_INTERFACE'] | Возвращает версию Common Interface шлюза (CGI) сервер использует |
$ _SERVER [ 'server_addr'] | Возвращает IP-адрес хост-сервера |
$ _SERVER [ 'SERVER_NAME'] | Возвращает имя хоста сервера (such as www.w3ii.com) |
$ _SERVER [ 'SERVER_SOFTWARE'] | Возвращает строку идентификации сервера (such as Apache/2.2.24) |
$ _SERVER [ 'SERVER_PROTOCOL'] | Возвращает имя и номер версии информационного протокола (such as HTTP/1.1) |
$ _SERVER [ 'REQUEST_METHOD'] | Возвращает метод запроса , используемый для доступа к странице (such as POST) |
$ _SERVER [ 'request_time'] | Возвращает метку начала запроса (such as 1377687496) |
$ _SERVER [ 'QUERY_STRING'] | Возвращает строку запроса, если доступ к странице с помощью строки запроса |
$ _SERVER [ 'HTTP_ACCEPT'] | Возвращает заголовок Accept из текущего запроса |
$ _SERVER [ 'HTTP_ACCEPT_CHARSET'] | Возвращает заголовок Accept_Charset из текущего запроса (например, UTF-8, ISO-8859-1) |
$ _SERVER [ 'HTTP_HOST'] | Возвращает заголовок хоста из текущего запроса |
$ _SERVER [ 'HTTP_REFERER'] | Возвращает полный URL текущей страницы (не надежен, поскольку не все пользовательские агенты поддерживают его) |
$ _SERVER [ 'HTTPS'] | запрашивается ли сценарий через защищенный протокол HTTP |
$ _SERVER [ 'REMOTE_ADDR'] | Возвращает IP-адрес, с которого пользователь просматривает текущую страницу |
$ _SERVER [ 'REMOTE_HOST'] | Возвращает имя хоста, с которого пользователь просматривает текущую страницу |
$ _SERVER [ 'REMOTE_PORT'] | Возвращает порт используется на компьютере пользователя для взаимодействия с веб-сервером |
$ _SERVER [ 'SCRIPT_FILENAME'] | Возвращает абсолютный путь к файлу в данный момент скрипта |
$ _SERVER [ 'SERVER_ADMIN'] | Возвращает значение , указанное в директиве SERVER_ADMIN в конфигурационном файле веб - сервера (если ваш скрипт работает на виртуальном хосте, это будет значение , определенное для данного виртуального хоста) (such as [email protected]) |
$ _SERVER [ 'SERVER_PORT'] | Возвращает порт на серверной машине, используемый веб - сервером для обмена данными (such as 80) |
$ _SERVER [ 'SERVER_SIGNATURE'] | Возвращает версию сервера и имя виртуального хоста, добавляемые к генерируемым сервером страниц |
$ _SERVER [ 'PATH_TRANSLATED'] | Возвращает путь на основе файловой системы для текущего скрипта |
$ _SERVER [ 'SCRIPT_NAME'] | Возвращает путь текущего сценария |
$ _SERVER [ 'SCRIPT_URI'] | Возвращает URI текущей страницы |
PHP $ _REQUEST
PHP $ _REQUEST используется для сбора данных после подачи формы HTML.
Приведенный ниже пример показывает форму с полем ввода и кнопку отправки. Когда пользователь отправляет данные, нажав на "Submit" , данные формы отправляются в файл , указанный в action атрибут <form> тег. В этом примере, мы указываем на сам этот файл для данных формы обработки. Если вы хотите использовать другой PHP файл для обработки данных формы, заменить это имя файла по вашему выбору. Затем, мы можем использовать супер глобальную переменную $ _REQUEST, чтобы собрать значения поля ввода:
пример
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
Выполнить пример » PHP $ _POST
PHP $ _POST широко используется для сбора данных формы после подачи формы HTML с помощью метода = «пост». $ _POST также широко используется для передачи переменных.
Приведенный ниже пример показывает форму с полем ввода и кнопку отправки. Когда пользователь отправляет данные, нажав на "Submit" , данные формы отправляются в файл , указанный в action атрибут <form> тег. В этом примере, мы указываем на сам файл для данных формы обработки. Если вы хотите использовать другой PHP файл для обработки данных формы, заменить это имя файла по вашему выбору. Затем, мы можем использовать супер глобальную переменную $ _POST, чтобы собрать значения поля ввода:
пример
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
Выполнить пример » PHP $ _GET
PHP $ _GET также может быть использована для сбора данных формы после подачи формы HTML с помощью метода = «получить».
$ _GET может также собирать данные, отправленные в URL.
Предположим, у нас есть страница HTML, которая содержит гиперссылку с параметрами:
<html>
<body>
<a href="test_get.php?subject=PHP&web=w3ii.com">Test $GET</a>
</body>
</html>
Когда пользователь нажимает на ссылку "Test $GET" , параметры "subject" и "web" отправляется "test_get.php" , а затем вы можете получить доступ к их значению в "test_get.php" с $ _GET.
Приведенный ниже пример показывает код в "test_get.php" :
пример
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
Выполнить пример » Совет: Вы узнаете больше о $ _POST и $ _GET в PHP Forms главе.