Суперглобальные переменные 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 текущей страницы. |



