Делаем что-нибудь полезное
   
    Давайте сделаем что-нибудь полезное. Например, узнаем, каким браузером пользуется
    клиент, который просматривает нашу страницу. Для этого проверим строку пользовательского
    агента, которую браузер отправляет как часть 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,
    делают так:
   
   
    
     
     
<?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» или нет.