Примеры кода
Теперь напишем полезный код и узнаем, в каком браузере
посетитель просматривает страницу. Для этого проверим строку пользовательского
агента, которую браузер отправляет как часть HTTP-запроса. Информация об агенте содержится
в массиве, который хранится в переменной.
В PHP каждая переменная начинается со знака доллара, а значение отдельного элемента массива
в переменной получают по ключу. Извлечём строку пользовательского агента из элемента
$_SERVER['HTTP_USER_AGENT'].
Замечание:
$_SERVER — суперглобальная зарезервированная переменная,
которую PHP заполняет информацией о запросе, среде выполнения и серверном окружении.
Дополнительную информацию о таких переменных содержит раздел
«Суперглобальные переменные».
Для вывода значения элемента массива, который хранится в переменной, напишем следующий код:
Пример #1 Вывод значения элемента массива
<?php
echo $_SERVER['HTTP_USER_AGENT'];
Mozilla/5.0 (Linux) Firefox/112.0
В PHP-переменных хранят числа, строки, массивы и значения других типов.
Тип значения, элемент которого выводил код предыдущего примера, называется массивом.
Массивы полезны для хранения значений произвольных типов.
Переменная $_SERVER — только один пример переменной,
к которой PHP автоматически открывает доступ. Список таких переменных приводит раздел
«Зарезервированные переменные»
или вывод функции phpinfo(), которую приводил
как пример предыдущий раздел.
В PHP-тег разрешается помещать больше одной инструкции и создавать
небольшие блоки кода, которые делают больше, чем простой вызов инструкции echo.
Например, если требуется проверить, что используется браузер Firefox,
делают так:
<?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>
Вместо вывода текста инструкцией echo, мы вышли из режима
интерпретации PHP-кода и написали HTML-разметку.
Логическая последовательность выполнения PHP-кода при этом сохраняется:
PHP отправит пользователю только один блок HTML-разметки
на основе значения, которое вернёт функция str_contains()
по результатам поиска подстроки Firefox.