Давайте сделаем что-нибудь полезное. Например, узнаем, каким браузером пользуется клиент, который просматривает нашу страницу. Для этого проверим строку пользовательского агента, которую браузер отправляет как часть HTTP-запроса. Эта информация хранится в переменной. Переменные в PHP предваряются знаком доллара. Переменная, которая нас интересует, называется $_SERVER['HTTP_USER_AGENT'].
Замечание:
Переменная $_SERVER — зарезервированная PHP-переменная, которая содержит информацию, которую PHP получил от веб-сервера. Переменную также называют суперглобальной. Дополнительную информацию смотрите в разделе «Суперглобальные переменные».
Для вывода переменной мы сделаем так:
Пример #1 Вывод значения переменной (элемента массива)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
Пример вывода программы:
Mozilla/5.0 (Linux) Firefox/112.0
В PHP доступен ряд типов переменных. В предыдущем примере мы выводили на печать элемент массива. Массивы бывают полезны.
Переменная $_SERVER — только одна переменная, которую PHP автоматически делает доступной. Список таких переменных приводит раздел «Зарезервированные переменные» или вывод функции phpinfo(), которую приводил как пример предыдущий раздел.
В PHP-тег разрешается помещать больше одной инструкции и создавать небольшие блоки кода, которые делают больше, чем простой вызов инструкции echo. Например, если требуется проверить, что используется браузер Firefox, делают так:
Пример #2 Пример использования управляющих структур и функций
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'Вы пользуетесь браузером Firefox.';
}
?>
Пример вывода программы:
Вы пользуетесь браузером Firefox.
Здесь вводится ряд новых понятий. Во-первых, в коде появилась инструкция if. Если вы знакомы с основами синтаксиса языка C, код выглядит для вас логичным. Иначе, вероятно, лучше взять книгу об основах языка PHP и прочитать одну-две начальных главы или почитать раздел «Справочник языка» этого руководства.
Во-вторых, в коде появился вызов функции str_contains().
Функция str_contains() — встроенная в PHP функция, которая определяет,
содержит ли строка другую строку. В примере функция ищет строку
«Firefox»
(т. н. «иголку», или needle)
в элементе $_SERVER['HTTP_USER_AGENT'] (в т. н. «стоге сена»,
или haystack). Если функция нашла «иголку» в «стоге сена», она возвращает логическое значение
true
. Иначе функция возвращает логическое значение false
.
Если функция вернёт true
, то условие в
выражении конструкции if окажется истинным (true
),
а PHP выполнит код в фигурных скобках {}. Иначе код
не выполняется. Попробуйте создать аналогичные примеры с использованием
инструкций if и
else, а также других функций
наподобие strtoupper() и strlen().
Каждая страница руководства также содержит примеры.
Почитайте страницу руководства о том,
как читать определения функций, и раздел
о PHP-функциях,
если не знаете, как использовать функции.
Пойдем дальше и покажем, как переходить в режим PHP и выходить из него даже в середине блока PHP-кода:
Пример #3 Смешение режимов HTML и PHP
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
<h3>Функция str_contains() возвращает true</h3>
<p>Вы пользуетесь браузером Firefox.</p>
<?php
} else {
?>
<h3>Функция str_contains() возвращает false</h3>
<p>Вы не пользуетесь браузером Firefox.</p>
<?php
}
?>
Пример вывода данной программы:
<h3>Функция str_contains() возвращает true</h3> <p>Вы пользуетесь браузером Firefox.</p>
Вместо вызова PHP-инструкции echo для вывода текста, мы вышли из режима
PHP и просто отправили HTML-код. Важный момент здесь состоит в том, что логическая
структура PHP-кода остается неизменной. Только один HTML-блок будет
отправлен клиенту в зависимости от результата функции
str_contains(). Другими словами, поведение завист от того,
нашла ли функция строку «Firefox»
или нет.