Суперглобальные переменные PHP — это встроенные переменные, к которым можно получить доступ из любой области видимости.

PHP Super Globals (PHP Super Globals)

В этом уроке мы объясним все суперглобальные переменные в PHP на примерах. Читайте дальше, чтобы узнать.

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

Суперглобальный $GLOBALS используется для доступа к глобальным переменным из любого поля (включая функции и методы) в PHP-скрипте. PHP хранит все глобальные переменные в массиве $GLOBALS[index]. Индекс содержит имя переменной. В следующем примере показано, как использовать суперглобальную переменную $GLOBALS:

$number1 = 50;
$number2 = 20;
function addition(): int
{
    return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70

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

PHP $_REQUEST — это суперглобальный PHP, используемый для сбора данных из HTML-формы.

<!DOCTYPE html>
<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') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_REQUEST[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

В приведенном выше примере мы создали форму, которая возвращает данные методом post. Мы позволили ему возвращать данные на той же странице с помощью $_SERVER['PHP_SELF']. Мы проверили, что запрос, поступающий с суперглобальным $_SERVER['REQUEST_METHOD'], является почтовым запросом. Затем мы безопасно присвоили данные из входа с именем fname со значением name переменной $name с суперглобальным значением $_REQUEST с помощью функции htmlspecialchars(). Мы проверили, пуста ли переменная $name или нет, с помощью условия PHP if. Если он пуст, мы печатаем вывод «Без имени», в противном случае мы печатаем данные переменной $name.

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

PHP $_POST — это суперглобальный объект PHP, используемый для сбора данных из HTML-формы с помощью метода POST.

<!DOCTYPE html>
<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') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_POST[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

В приведенном выше примере мы создали форму, которая возвращает данные методом post. Мы позволили ему возвращать данные на той же странице с помощью $_SERVER['PHP_SELF']. Мы проверили, что запрос, поступающий с суперглобальным $_SERVER['REQUEST_METHOD'], является почтовым запросом. Затем мы безопасно присвоили данные из входа с именем fname со значением name переменной $name с суперглобальным значением $_POST с помощью функции htmlspecialchars(). Мы проверили, пуста ли переменная $name или нет, с помощью условия PHP if. Если он пуст, мы печатаем вывод «Без имени», в противном случае мы печатаем данные переменной $name.

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

PHP $_GET — это суперглобальный объект PHP, используемый для сбора данных из HTML-формы с помощью метода GET. Мы также можем получить данные, отправленные с помощью get в URL-адресе, с помощью суперглобального объекта $_GET.

Получение данных из формы с помощью PHP $_GET Super Global

В приведенном ниже примере мы получили данные из HTML-формы с суперглобальным PHP $_GET.

<!DOCTYPE html>
<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' ] === 'GET') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_GET[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

В приведенном выше примере мы создали форму, которая возвращает данные методом post. Мы позволили ему возвращать данные на той же странице с помощью $_SERVER['PHP_SELF']. Мы проверили, что запрос, поступающий с суперглобальным $_SERVER['REQUEST_METHOD'], является почтовым запросом. Затем мы безопасно присвоили данные из входа с именем fname со значением name переменной $name с суперглобальным значением $_POST с помощью функции htmlspecialchars(). Мы проверили, пуста ли переменная $name или нет, с помощью условия PHP if. Если он пуст, мы печатаем вывод «Без имени», в противном случае мы печатаем данные переменной $name.

Получение данных из URL-адреса с помощью PHP $_GET Super Global

В приведенном ниже примере мы получили данные из URL-адреса с помощью суперглобального PHP $_GET.

<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>

В приведенном выше примере вместо ввода имени файла мы получили имя файла, используя суперглобальную переменную $_SERVER. Теперь давайте объясним, что мы сделали в этом примере. Мы создали HTML-документ и присвоили параметр name файлу get.php. Мы присвоили параметру имени значение «Onur Özden» и разделили параметры знаком «&». После этого мы создали параметр веб-сайта и присвоили ему значение «onurozden.com.tr». Мы напечатали текст «Нажмите здесь» на метке A. Перейдя к части PHP, мы напечатали «Мое имя» с помощью echo и использовали суперглобальный объект $_GET с оператором конкатенации для получения и печати данных параметра с именем name. Опять же, используя оператор слияния, мы напечатали «и мой веб-сайт». Мы снова использовали оператор конкатенации, получили данные параметра веб-сайта с помощью суперглобальной переменной $GET и распечатали их.

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

Суперглобальная переменная $_SERVER — это суперглобальная переменная PHP, содержащая информацию о заголовках, путях и местоположениях скриптов. В примере ниже мы покажем, как использовать суперглобальный $_SERVER.

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'];

В приведенном выше примере мы определили переменные с именами $number1 и $number2 и присвоили им значения типа Number. Затем мы определили функцию сложения, которая возвращает значение типа данных int. Мы сказали, что в суперглобальной переменной $GLOBALS имена переменных сохраняются как индексы. Мы создали переменную, создав индекс с именем number3. Мы присвоили этой переменной сумму переменной $number2 и переменной $number1, к которой мы обращались из глобальной области с помощью суперглобальной переменной $GLOBALS. Затем мы вернули это значение с помощью return и завершили функцию. На последнем шаге мы выводим значение в нашей функции add() с помощью echo.

Все варианты использования PHP $_SERVER Super Global

$_SERVER['PHP_SELF']Возвращает имя файла выполненного скрипта.
$_SERVER['GATEWAY_INTERFACE']Возвращает версию CGI (Common Gateway Interface), используемую сервером.
$_SERVER['SERVER_ADDR']Возвращает IP-адрес хост-сервера.
$_SERVER['SERVER_NAME']Возвращает имя главного сервера.
$_SERVER['SERVER_SOFTWARE']Возвращает текст идентификации сервера (например, Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL']Возвращает имя и версию информационного протокола (например, HTTP/1.1).
$_SERVER['REQUEST_METHOD']Возвращает метод запроса, используемый для доступа к странице (например, POST, GET).
$_SERVER['REQUEST_TIME']Возвращает метку времени начала запроса (например, 1377687496).
$_SERVER['QUERY_STRING']Если доступ к странице осуществляется через строку запроса, она возвращает строку запроса.
$_SERVER['HTTP_ACCEPT']Возвращает заголовок принятия из текущего запроса.
$_SERVER['HTTP_ACCEPT_CHARSET']Возвращает заголовок Accept_Charset из текущего запроса (например, utf-8,ISO-8859-1).
$_SERVER['HTTP_HOST']Возвращает заголовок хоста из текущего запроса.
$_SERVER['HTTP_REFERER']Возвращает полный URL-адрес текущей страницы (ненадежно, поскольку не все пользовательские агенты поддерживают его).
$_SERVER['HTTPS']Проверяет, запрашивается ли сценарий через безопасный протокол HTTP (HTTPS).
$_SERVER['REMOTE_ADDR']Возвращает IP-адрес, с которого пользователь просматривает текущую страницу.
$_SERVER['REMOTE_HOST']Возвращает имя хоста, с которого пользователь просматривает текущую страницу.
$_SERVER['REMOTE_PORT']Возвращает порт, используемый на компьютере пользователя для связи с веб-сервером.
$_SERVER['SCRIPT_FILENAME']Возвращает абсолютный путь к выполняющемуся в данный момент скрипту.
$_SERVER['SERVER_ADMIN']Возвращает значение, указанное в директиве SERVER_ADMIN в файле конфигурации веб-сервера (если ваш сценарий выполняется на виртуальном хосте, это будет значение, определенное для этого виртуального хоста) (например, some@onurozden.com.tr).
$_SERVER['SERVER_PORT']Возвращает порт на серверном компьютере, используемый веб-сервером для связи (например, 80).
$_SERVER['SERVER_SIGNATURE']Возвращает версию сервера и имя виртуального хоста, добавленные на страницу, созданную сервером.
$_SERVER['PATH_TRANSLATED']Возвращает путь к текущему сценарию на основе файловой системы.
$_SERVER['SCRIPT_FILENAME']Возвращает путь к текущему скрипту.
$_SERVER['SCRIPT_URI']Возвращает URI текущей страницы.