English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP основы руководства

PHP Advanced Tutorial

PHP & MySQL

PHP Reference Manual

PHP Switch…Case Statement

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

PHP If…Else Vs Switch…Case

Структура switch-case является альтернативой инструкциям if-elseif-else и выполняет几乎 такие же действия. Структура switch-case проверяет переменную по нескольким значениям до тех пор, пока не найдется совпадение, после чего выполняется блок кода, соответствующий этому значению.

switch(n){
    case label1:
        // Код для выполнения, если n=label1
        break;
    case label2:
        // Код для выполнения, если n=label2
        break;
    ...
    default:
        // Код для выполнения, если n не соответствует всем этикеткам
}

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

<?php
$today = date("D");
switch($today){
    case "Mon":
        echo "Сегодня понедельник. Убедитесь, что ваш дом в порядке.";
        break;
    case "Tue":
        echo "Сегодня вторник. Купите еду.";
        break;
    case "Wed":
        echo "Сегодня среда. Посетите врача.";
        break;
    case "Thu":
        echo "Сегодня четверг. Почините свою машину.";
        break;
    case "Fri":
        echo "Сегодня пятница. Вечеринки tonight.";
        break;
    case "Sat":
        echo "Сегодня суббота. Время去看 фильм.";
        break;
    case "Sun":
        echo "Сегодня воскресенье. Отдохните.";
        break;
    default:
        echo "Сегодня нет доступной информации.";
        break;
}
?>
Проверьте, как это работает‹/›

Разница между структурой switch-case и if-elseif-else заключается в одном важном аспекте. Инструкция switch выполняет строки по порядку (или инструкции по порядку), и как только PHP находит выражение условия case, которое истинно, он не только выполняет код, связанный с этим выражением case, но и все последующие выражения case до его окончания. Блок switch автоматически переключается.

Чтобы предотвратить это, добавьте инструкцию break в конце каждого блока case. Инструкция break сообщает PHP, что после выполнения кода, связанного с первым истинным выражением case, следует выйти из блока switch-case.