Глобальные переменные PHP - суперглобальные переменные
- Предыдущая страница Сортировка массивов PHP
- Следующая страница Обработка форм PHP
Суперглобальные переменные были введены в PHP 4.1.0 и всегда доступны в полном диапазоне.
Глобальные переменные PHP - суперглобальные переменные
Многие предопределенные переменные PHP являются «суперглобальными», что означает, что они доступны во всем диапазоне скрипта. К ним можно обращаться без выполнения global $variable; в функции или методе.
Эти суперглобальные переменные включают в себя:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
В этой главе будут рассмотрены некоторые суперглобальные переменные, а в последующих разделах будут объяснены другие суперглобальные переменные.
$GLOBALS — ссылка на все переменные, доступные в глобальном контексте
Эта суперглобальная переменная $GLOBALS используется для доступа к глобальным переменным в любом месте скрипта PHP (из функции или метода).
PHP хранит все глобальные переменные в массиве под именем $GLOBALS[index]. Имя переменной является ключом массива.
Ниже приведен пример того, как можно использовать суперглобальную переменную $GLOBALS:
Пример
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
В приведенном выше примере, так как z является переменной массива $GLOBALS, поэтому к ней можно обращаться вне функции.
PHP $_SERVER
Эта суперглобальная переменная $_SERVER хранит информацию о заголовках, путях и местоположении скрипта.
Ниже приведен пример того, как можно использовать некоторые элементы $_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'] | 返回服务器使用的 CGI 规范的版本。 |
$_SERVER['SERVER_ADDR'] | 返回当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER['SERVER_NAME'] | 返回当前运行脚本所在的服务器的主机名(比如 www.codew3c.com)。 |
$_SERVER['SERVER_SOFTWARE'] | 返回服务器标识字符串(比如 Apache/2.2.24)。 |
$_SERVER['SERVER_PROTOCOL'] | 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。 |
$_SERVER['REQUEST_METHOD'] | 返回访问页面使用的请求方法(例如 POST)。 |
$_SERVER['REQUEST_TIME'] | 返回请求开始时的时间戳(例如 1577687494)。 |
$_SERVER['QUERY_STRING'] | 返回查询字符串,如果是通过查询字符串访问此页面。 |
$_SERVER['HTTP_ACCEPT'] | 返回来自当前请求的请求头。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1) |
$_SERVER['HTTP_HOST'] | 返回来自当前请求的 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 в файле конфигурации Apache. |
$_SERVER['SERVER_PORT'] | Порт, используемый веб-сервером. По умолчанию это "80". |
$_SERVER['SERVER_SIGNATURE'] | Возвращает версию сервера и имя виртуального хоста. |
$_SERVER['PATH_TRANSLATED'] | Основной путь в файловой системе текущего скрипта (не каталог корня документа). |
$_SERVER['SCRIPT_NAME'] | Возвращает путь к текущему скрипту. |
$_SERVER['SCRIPT_URI'] | Возвращает текущий URI страницы. |
PHP $_REQUEST
PHP $_REQUEST используется для сбора данных формы, отправленной HTML-формы.
Пример показывает форму, содержащую поля ввода и кнопку отправки. После того как пользователь нажимает кнопку отправки для отправки данных формы, данные формы будут отправлены на скрипт, указанный в атрибуте action тега <form>. В этом примере мы указываем сам файл для обработки данных формы. Если вам нужно использовать другой файл PHP для обработки данных формы, измените имя файла на ваше предпочтительное. Затем мы можем использовать суперглобальную переменную $_REQUEST для сбора значений полей ввода:
Пример
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Имя: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
PHP $_POST
PHP $_POST широко используется для сбора данных формы, отправленной с помощью метода "post" в HTML-форме. $_POST также часто используется для передачи переменных.
Пример показывает форму, содержащую поля ввода и кнопку отправки. После того как пользователь нажимает кнопку отправки для отправки данных, данные формы будут отправлены на файл, указанный в атрибуте action тега <form>. В этом примере мы указываем сам файл для обработки данных формы. Если вы хотите использовать другую страницу PHP для обработки данных формы, измените имя файла на ваше предпочтительное. Затем мы можем использовать суперглобальную переменную $_POST для сбора значений полей ввода:
Пример
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Имя: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
PHP $_GET
PHP $_GET также можно использовать для сбора данных формы (method="get") после её отправки.
$_GET также может собирать данные, отправленные в URL.
Предположим, что у нас есть страница с гиперссылками с параметрами:
<html> <body> <a href="test_get.php?subject=PHP&web=codew3c.com">Тест $GET</a> </body> </html>
Когда пользователь нажимает ссылку "Тест $GET", параметры "subject" и "web" отправляются в "test_get.php", и затем вы можете получить доступ к этим значениям через $_GET в "test_get.php".
Ниже приведен код из файла "test_get.php":
Пример
<html> <body> <?php echo "Учеба в " . $_GET['web'] . " по теме " . $_GET['subject']; ?> </body> </html>
Совет:Вы узнаете о Формы PHP В этом разделе вы узнаете больше о $_POST и $_GET.
- Предыдущая страница Сортировка массивов PHP
- Следующая страница Обработка форм PHP