Время чтения ~ 30 сек. / 103 просмотра / 0 комментариев / Январь 14, 2024, 20:58

В этом уроке вы узнаете о конструкции switch в PHP, который выполняет блок кода, сопоставляя выражение с несколькими значениями.

Введение

Когда значение одной переменной определяется различным количеством вариантов выбора, вы можете использовать оператор if...elseif.

Предположим, вы создаете веб-сайт, у которого пользователи имеют различные роли, такие как администратор, редактор, автор и подписчик.

В следующем примере используется оператор if elseif для отображения различных сообщений в зависимости от роли пользователя:

<?php

$role = 'subscriber';
$message = '';

if ('admin' === $role) {
    $message = 'Добро пожаловать, admin!';
} elseif ('editor' === $role) {
    $message = 'Добро пожаловать! У вас есть несколько статей, ожидающих редактирования.';
} elseif ('author' === $role) {
    $message = 'Добро пожаловать! Хотите опубликовать черновик статьи?';
} elseif ('subscriber' === $role) {
    $message = 'Добро пожаловать! Ознакомьтесь с некоторыми новыми статьями.';
} else {
    $message = 'Простите! Вы не авторизованы для просмотра этой страницы.';
}

echo $message;

Вывод:

Добро пожаловать! Ознакомьтесь с некоторыми новыми статьями.

Когда значение одной переменной определяется различным количеством вариантов выбора, целесообразней использовать конструкцию switch, например, так:

<?php

$role = 'admin';
$message = '';

switch ($role) {
    case 'admin':
        $message = 'Добро пожаловать, admin!';
        break;
    case 'editor':
        $message = 'Добро пожаловать! У вас есть несколько статей, ожидающих редактирования.';
        break;
    case 'author':
        $message = 'Добро пожаловать! Хотите опубликовать черновик статьи?';
        break;
    case 'subscriber':
        $message = 'Добро пожаловать! Ознакомьтесь с некоторыми новыми статьями.';
        break;
    default:
        $message = 'Простите! Вы не авторизованы для просмотра этой страницы.';
}

echo $message;

Следующий код иллюстрирует синтаксис конструкции switch:

<?php

switch (выражение) {
    case value1:
        // блок кода 1
        break;
    case value2:
        // блок кода 2
        break;
    case value3:
        // блок кода 3
        break;
    default:
        // блок кода по умолчанию
}

Оператор switch сравнивает выражение со значением в каждом случае.

Если выражение равно значению в каком-то случае, например, value1, PHP выполняет блок кода в соответствующем случае до тех пор, пока не встретит первый оператор break.

Если нет совпадения, и доступен блок default, PHP выполняет все инструкции, следующие за ключевым словом default.

В случае отсутствия блока default и отсутствия совпадения управление передается оператору, следующему за конструкцией switch.

Следующая блок-схема иллюстрирует, как работает конструкция switch:

switch php

Комбинирование случаев

Поскольку PHP выполняет конструкцию switch от совпадающей метки case до тех пор, пока не встретит оператор break, вы можете объединить несколько случаев (case-ов) в один.

В следующем примере используется конструкция switch, которая объединяет случаи 'editor' и 'author':

<?php

$role = 'author';
$message = '';

switch ($role) {
    case 'admin':
        $message = 'Добро пожаловать, admin!';
        break;
    case 'editor':
    case 'author':
        $message = 'Добро пожаловать! Хотите опубликовать черновик статьи?';
        break;
    case 'subscriber':
        $message = 'Добро пожаловать! Ознакомьтесь с некоторыми новыми статьями.';
        break;
    default:
        $message = 'Простите! Вы не авторизованы для просмотра этой страницы.';
}

echo $message;

Вывод:

Добро пожаловать! Хотите опубликовать черновик статьи?

В этом примере, если роль — editor или author, будет показано одно и то же сообщение.

Альтернативный синтаксис конструкции switch в PHP

PHP также поддерживает альтернативный синтаксис конструкции switch:

<?php

switch (выражение):
    case value1:
        // блок кода 1
        break;
    case value2:
        // блок кода 2
        break;

    default:
        // блок кода по умолчанию
        break;
endswitch;

Альтернативный синтаксис подходит для смешивания с HTML-кодом.

Подытожим

  • Используйте конструкцию switch в PHP вместо серии конструкций if для одного и того же выражения.
Теги:
php
Тернарный оператор - PHP
Цикл for - PHP
Оператор И (AND) - PHP
Январь 10, 2024, 20:03
В этом уроке вы узнаете о логическом операторе И (AND) в PHP и как использовать его для создания сложных логических выражений.
Строка (String) - PHP
Январь 06, 2024, 21:58
В этом уроке вы узнаете о строках в PHP и о том, как эффективно манипулировать строками.
Оператор ИЛИ (OR) - PHP
Январь 11, 2024, 13:37
В этом уроке вы узнаете о логическом операторе ИЛИ (OR) (||) в PHP и о том, как его использовать для создания сложных логических выражений.
PHP Учебник
Декабрь 23, 2023, 16:37
Это руководство по PHP поможет вам научиться разрабатывать динамические веб-сайты и веб-приложения с использованием PHP с нуля.
Целое число (Integer) - PHP
Январь 05, 2024, 21:45
В этом уроке вы узнаете о типе PHP integer, который представляет целые числа в PHP.