Альтернативный синтаксис циклов и условий в PHP. Как встроить их в HTML?

альтернативный синтаксис циклов и условий в php. как встроить их в html?

Применение альтернативного синтаксиса

Первые уроки учебного курса рассматривали принципы встраивания PHP в HTML-разметку. Были приведены несколько простых примеров по шаблонизации. Однако мы не затрагивали вопросы, связанные с управляющими конструкциями, которые позволяют формировать вывод разметки по условию или дублировать определенные участки в циклах.

Альтернативный синтаксис существует специально для этих целей. Он дает возможность удобным способом использовать циклы, условные операторы и оператор выбора прямо в шаблонах. Это многократно улучшает возможности по динамической сборке страниц.

Тема урока довольно проста и заключается всего в одном правиле. Для использования нового синтаксиса управляющих конструкций switch, if, while, for и foreach открывающая скобка должна быть заменена на символ двоеточия «:», а закрывающая соответственно на endswitch, endif, endwhile, endfor и endforeach.

Заметка
Далее мы приводим примеры по использованию альтернативного синтаксиса в PHP. Они не требуют особых комментариев и понятны на интуитивном уровне.

Условные операторы If и Switch

Ниже приводится пример HTML-разметки с использованием альтернативного синтаксиса условного оператора If и оператора выбора Switch. Логика формирования их результата равнозначна.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Пример использования If и Switch</title>
    </head>
    <body>
        <?php
            //Объявляем переменные для проверок условий
            $userRole = 'administrator';
            $userName = 'Андрей';
        ?>

        <!-- используем обычные проверки с помощью If -->
        <?php if ($userRole === 'administrator'): ?>
            <h3>Добро пожаловать, <?php echo $userName; ?>!</h3>
            <p>Вы получили права администратора.</p>

        <?php elseif ($userRole === 'manager'): ?>
            <h3>Добро пожаловать, <?php echo $userName; ?>!</h3>
            <p>Вы получили права менеджера.</p>

        <?php else: ?>
            <h3>Вы не прошли проверку прав.</h3>
        <?php endif; ?>

        <hr>

        <!-- используем оператор выбора Switch -->
        <?php switch($userRole):
            case 'administrator': ?>
                <h3>Добро пожаловать, <?php echo $userName; ?>!</h3>
                <p>Вы получили права администратора.</p>
                <?php break; ?>

            <?php case 'manager': ?>
                <h3>Добро пожаловать, <?php echo $userName; ?>!</h3>
                <p>Вы получили права менеджера.</p>
                <?php break; ?>

            <?php default: ?>
                <h3>Вы не прошли проверку прав.</h3>
        <?php endswitch; ?>
    </body>
</html>

Циклы While, For и Foreach

Данные виды операторов имеют различный подход к передаче входящих параметров. Тем не менее, как и в предыдущем примере, мы построили их логику так, чтобы формировался одинаковый результат.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Пример использования While, For и Foreach</title>
    </head>
    <body>
        <?php
            //Объявляем массив для перебора в различных циклах
            $usersData = [
                [
                    'surname' => 'Соколов',
                    'name' => 'Олег',
                    'id' => 10
                ],
                [
                    'surname' => 'Павлов',
                    'name' => 'Денис',
                    'id' => 11
                ],
                [
                    'surname' => 'Кузнецов',
                    'name' => 'Александр',
                    'id' => 12
                ]
            ];
        ?>

        <!-- использование альтернативного синтаксиса цикла While -->
        <?php $handledUsers = 0; ?>
        <?php while ($handledUsers != count($usersData)): ?>
            <h3>Пользователь №<?php echo $usersData[$handledUsers]['id'] ?>:</h3>
            <p>
                <?php echo $usersData[$handledUsers]['surname'] ?>
                <?php echo $usersData[$handledUsers]['name'] ?>
            </p>

            <?php $handledUsers++; ?>
        <?php endwhile; ?>

        <hr>

        <!-- использование альтернативного синтаксиса цикла For -->
        <?php for ($i = 0; $i < count($usersData); $i++): ?>
            <h3>Пользователь №<?php echo $usersData[$i]['id'] ?>:</h3>
            <p>
                <?php echo $usersData[$i]['surname'] ?>
                <?php echo $usersData[$i]['name'] ?>
            </p>
        <?php endfor; ?>

        <hr>

        <!-- использование альтернативного синтаксиса цикла Foreach -->
        <?php foreach ($usersData as $user): ?>
            <h3>Пользователь №<?php echo $user['id'] ?>:</h3>
            <p>
                <?php echo $user['surname'] ?>
                <?php echo $user['name'] ?>
            </p>
        <?php endforeach; ?>
    </body>
</html>

Последние публикации