PHP 5 Глобальные переменные - Superglobals
Надстройки были введены в PHP 4.1.0 и являются встроенными переменными, которые всегда доступны во всех областях.
Глобальные переменные PHP-глобальные показатели
Несколько предопределенных переменных в PHP являются "глобальными", что означает, что они всегда доступны, независимо от области видимости-и вы можете получить к ним доступ из любой функции, класса или файла без необходимости делать ничего особенного.
Глобальные переменные PHP:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
В этой главе объясняются некоторые из них, а остальные будут объяснены в последующих главах.
PHP $GLOBALS
$Globals-это PHP Super Global переменная, которая используется для доступа к глобальным переменным из любого места в PHP скрипте (также из функций или методов).
PHP хранит все глобальные переменные в массиве, называемом $Globals [index]. индекс содержит имя переменной.
В приведенном ниже примере показано, как использовать глобальную переменную Super Global $Globals:
Пример
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
В приведенном выше примере, поскольку z является переменной, присутствующей в массиве $Globals, она также доступна извне функции!
PHP $ _сервер
$ _сервер-это PHP Super Global переменная, содержащая информацию о заголовках, путях и местоположениях скриптов.
В приведенном ниже примере показано, как использовать некоторые элементы в $ _сервер:
Пример
<?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['PHP_SELF'] | Возвращает имя файла выполняющегося в данный момент скрипта |
$_SERVER['GATEWAY_INTERFACE'] | Возвращает версию общего интерфейса шлюза (CGI), используемую сервером |
$_SERVER['SERVER_ADDR'] | Возвращает IP-адрес хост-сервера |
$_SERVER['SERVER_NAME'] | Возвращает имя хост-сервера (например, html5css.ru) |
$_SERVER['SERVER_SOFTWARE'] | Возвращает строку идентификации сервера (например, Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | Возвращает имя и редакцию информационного протокола (например, HTTP/1.1) |
$_SERVER['REQUEST_METHOD'] | Возвращает метод запроса, используемый для доступа к странице (например, POST) |
$_SERVER['REQUEST_TIME'] | Возвращает метку времени начала запроса (например, 1377687496) |
$_SERVER['QUERY_STRING'] | Возвращает строку запроса, если доступ к странице осуществляется через строку запроса |
$_SERVER['HTTP_ACCEPT'] | Возвращает заголовок Accept из текущего запроса |
$_SERVER['HTTP_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'] | Возвращает значение, заданное директиве сервер_админ в файле конфигурации веб-сервера (если ваш скрипт запускается на виртуальном хосте, это будет значение, определенное для этого виртуального хоста) (например, [email protected] |
$_SERVER['SERVER_PORT'] | Возвращает порт на компьютере сервера, используемого веб-сервером для связи (например, 80) |
$_SERVER['SERVER_SIGNATURE'] | Возвращает версию сервера и имя виртуального хоста, добавляемые к страницам, генерируемым сервером |
$_SERVER['PATH_TRANSLATED'] | Возвращает путь на основе файловой системы к текущему сценарию |
$_SERVER['SCRIPT_NAME'] | Возвращает путь к текущему сценарию |
$_SERVER['SCRIPT_URI'] | Возвращает универсальный код ресурса (URI) текущей страницы |
PHP $_REQUEST
PHP $ _рекуест используется для сбора данных после отправки HTML-формы.
В приведенном ниже примере показана форма с полем ввода и кнопкой Submit. Когда пользователь отправляет данные, нажав кнопку "Отправить", данные формы отправляются в файл, указанный в атрибуте Action тега < form >. В этом примере мы указывали на этот файл для обработки данных формы. Если вы хотите использовать другой файл PHP для обработки данных формы, замените его на имя файла по вашему выбору. Затем, мы можем использовать Super Global переменная $ _рекуест для сбора значения поля ввода:
Пример
<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 $ _пост широко используется для сбора данных формы после отправки HTML-формы с методом = "Post". $ _пост также широко используется для передачи переменных.
В приведенном ниже примере показана форма с полем ввода и кнопкой Submit. Когда пользователь отправляет данные, нажав кнопку "Отправить", данные формы отправляются в файл, указанный в атрибуте Action тега < form >. В этом примере мы указывали на сам файл для обработки данных формы. Если вы хотите использовать другой файл PHP для обработки данных формы, замените его на имя файла по вашему выбору. Затем, мы можем использовать Super Global переменная $ _пост для сбора значения поля ввода:
Пример
<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 $ _жет также может быть использован для сбора данных формы после отправки HTML-формы с методом = "Get".
$ _жет может также собирать данные, отправленные в URL.
Предположим, что у нас есть HTML-страница, содержащая гиперссылку с параметрами:
<html>
<body>
<a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>
</body>
</html>
Когда пользователь нажимает на ссылку "Test $Get", параметры "Тема" и "веб" отправляются на "test_get.php", и вы можете получить доступ к их значениям в "test_get.php" с $ _get.
В приведенном ниже примере показан код в "test_get.php":
Пример
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
Совет: Вы узнаете больше о $ _пост и $ _жет в разделе PHP Forms.