PHP 5 Глобальные переменные - Суперглобальные

Курс по основам языка программирования PHP.
W3Schools на русском языке. Уроки для начинающих



Суперглобальные переменные были введены в PHP 4.1.0 и представляют собой встроенные переменные, которые всегда доступны во всех областях.


PHP Глобальные переменные - Суперглобальные

Несколько предопределенных переменных в PHP являются «суперглобальными», что означает, что они всегда доступны, независимо от области видимости, и вы можете получить к ним доступ из любой функции, класса или файла, не делая ничего специально.

Суперглобальные переменные PHP:

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


PHP $GLOBALS

$GLOBALS - это суперглобальная переменная PHP, которая используется для доступа к глобальным переменным из любой точки скрипта PHP (также из функций или методов).

PHP хранит все глобальные переменные в массиве с именем $GLOBALS [index]. index содержит имя переменной.

В приведенном ниже примере показано, как использовать суперглобальную переменную $GLOBALS:

Пример

<?php
$x = 75;
$y = 25;
 
function addition() {
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
 
addition();
echo $z;
?>
Выполнить пример »

В приведенном выше примере, поскольку 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 Gateway Interface (CGI), которую использует сервер
$_SERVER['SERVER_ADDR'] Возвращает IP-адрес хост-сервера
$_SERVER['SERVER_NAME'] Возвращает имя хост-сервера (например, www.w3schools.com)
$_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'] Возвращает заголовок 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 в файле конфигурации веб-сервера (если ваш скрипт выполняется на виртуальном хосте, это будет значение, определенное для этого виртуального хоста) (например, somebody@w3schools.com)
$_SERVER['SERVER_PORT'] Возвращает порт на сервере, который используется веб-сервером для связи (например, 80)
$_SERVER['SERVER_SIGNATURE'] Возвращает версию сервера и имя виртуального хоста, которые добавляются на сгенерированные сервером страницы
$_SERVER['PATH_TRANSLATED'] Возвращает путь к текущему сценарию на основе файловой системы
$_SERVER['SCRIPT_NAME'] Возвращает путь текущего скрипта
$_SERVER['SCRIPT_URI'] Возвращает URI текущей страницы

PHP $_REQUEST

PHP $_REQUEST используется для сбора данных после отправки HTML-формы.

(Request - перевод с анг. "Запрос").

В приведенном ниже примере показана форма с полем ввода и кнопкой отправки. Когда пользователь отправляет данные, нажимая «Отправить», данные формы отправляются в файл, указанный в атрибуте 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") {
    // собрать значение поля ввода
    $name = $_REQUEST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>


</body>
</html>
Выполнить пример »

PHP $_POST

PHP $_POST широко используется для сбора данных формы после отправки формы HTML с method="post". $_POST также широко используется для передачи переменных.

В приведенном ниже примере показана форма с полем ввода и кнопкой отправки. Когда пользователь отправляет данные, нажимая «Отправить», данные формы отправляются в файл, указанный в атрибуте 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") {
    // собрать значение поля ввода
    $name = $_POST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>


</body>
</html>
Выполнить пример »

PHP $_GET

PHP $_GET также можно использовать для сбора данных формы после отправки HTML-формы с method="get".

$_GET также может собирать данные, отправленные в URL.

Предположим, у нас есть HTML-страница, которая содержит гиперссылку с параметрами:

<html>
<body>

<a href="test_get.php?subject=PHP&web=W3schools.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 Формы.


уроки для начинающих для новичков основы курсы с нуля php глобальные переменные суперглобальные методы формы


warning

Не выкладывайте свой код непосредственно в комментариях, он отображается некорректно. Воспользуйтесь такими сервисами, как jsfiddle.net, codepen.io, liveweave.com, jsbin.com, сохраните код на любом из этих сервисов и в комментариях дайте на него ссылку. Так будет виден и код, и результат.