Web-Programming.in.ua

Оператор switch-case в PHP

Привіт, в цій статті я розкажу про конструкцію switch-case, яка дуже нагадує if-else, і в певних випадках дуже зручна. Одразу розглянемо приклад:

<?php
    $num = $_GET['num'];

    switch($num) {
        case 0:
            echo 'Вибрали "0"';
            break;
        case 1:
            echo 'Вибрали "1"';
            break;
        case 2:
            echo 'Вибрали "2"';
            break;
        default:
            exit("Порожньо");
    }
?>
Збережіть цей скрипт в директорії з сайтом і перейдіть на нього з параметром "?num=2". Ви побачите текст "Вибрали 2";
А тепер усе по-порядку. Ми створили змінну і присвоїли їй значення з масиву $_GET.
І починається оператор порівняння. switch відкриває порівняння і приймає вхідний параметр (те, що порівнюємо). І починається щось схоже на конструкцію "if". Перебираємо варіанти в "case". Також можна використовувати не тільки числа (int), але й рядки, текстову інформацію (string). Якщо ви не знаєте, що таке string, integer і т.д, то читайте цю статтю. Вам напевно цікаво, що таке "default"? Якщо жодне значення не співпало із значенням із набору, то виконується блок "default", якщо він існує.
Давайте згадаємо оператор порівняння "if-else", і запишемо цей самий код з його допомогою:
<?php
$num = $_GET['num'];
if ($num == 0) echo 'Вибрали 0';
elseif ($num == 1) echo 'Вибрали 1';
elseif ($num == 2) echo 'Вибрали 2';
?>

Як бачите нічого складного.

Можливо в когось виникне запитання типу "А навіщо в кінці кожного блоку case оператор break?". Так от, PHP продовжує виконання конструкцій до кінця блоку switch, що не завжди потрібно. Для експерименту видаліть усі break, і запустіть скрипт з параметром num=1, то буде відображено щось типу 'Вибрали "1"Вибрали "2"' тому, що PHP відобразить блок "case 1", і всі що йдуть після нього. Саме тому і пишеться break в кожному блоці.

Ось і все, що хотілося б сказати про конструкцію switch-case в PHP.

 

Тільки авторизовані користувачі можуть додавати коментарі.

Нагору