TOC

This article has been localized into Russian by the community.

Основы PHP:

Оператор switch

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

Оператор switch строится вокруг условия, к которому предлагаются возможные значения - case, каждый из которых ведет к какому-то действию. Рассмотрим пример:

<?php
$answer = 0;
if(isset($_GET["answer"]))
    $answer = $_GET["answer"];
    
switch($answer)
{
    default:
        echo "Which version of PHP are you using?<br /><br />";
        echo "<a href=\"?answer=3\">3</a><br />";
        echo "<a href=\"?answer=4\">4</a><br />";
        echo "<a href=\"?answer=5\">5</a><br />";
        break;
    case 3:
        echo "Ugh that's old, upgrade now!";
        break;
    case 4:
        echo "Still on version 4? Give PHP 5 a try!";
        break;
    case 5:
        echo "Good choice!";
        break;
}
?>

Первая пара строк позволяет получить ответ на наш вопрос из строки запроса (query) - пока можете не заострять на этом внимание, переменные $_GET и $_POST будут объясняться позже.

Дальше идет собственно оператор switch. Он состоит из ключевого слова switch и следующего за ним условия, которое мы хотим проверить. В нашем случае мы используем переменную $answer, в которой находится значение, полученное из строки запроса. Внутри оператора switch мы начинаем определять case-ы. Первый вариант особенный, поскольку вместо того, чтобы проверить какое-то конкретное значение, мы используем ключевое слово default (по умолчанию), чтобы определить действие, которое нужно выполнить только если ни один из остальных вариантов не подойдет. В нашем примере это позволяет нам вывести вопрос, который мы хотим задать, и несколько ссылок с ответами на него. Мы спрашиваем у пользователя, какую версию PHP он использует, и как только он перейдет по какой-нибудь ссылке, мы выведем результат для соответствующей версии. Если не выбран никакой ответ, или вариант ответа не соответствует ни одному case-у, мы просто выведем сам вопрос, указанный в default.

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

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

Оператор switch позволяет группировать несколько вариантов в один case, и в PHP можно в качестве значений использовать строки. Вот небольшой пример:

$color = "red";
switch($color)
{
    case "red":
    case "blue":
    case "green":
        echo "Nice basic color!";
        break;
    case "black":
        echo "Too dark!";
        break;
    case "white":
        echo "Too bright!";
        break;
}
This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!