Оператор switch

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

Вот пример:

<?php
$answer = 0;
if(isset($_GET["answer"]))
    $answer = $_GET["answer"];

switch($answer)
{
    default:
        echo "Какой версией PHP вы пользуетесь?<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 "Фу, это старье, обновитесь сейчас же!";
        break;
    case 4:
        echo "Все еще на 4 версии? Дайте PHP 5 шанс!";
        break;
    case 5:
        echo "Хороший выбор!";
        break;
}
?>

Первая пара строк используется для получения ответа на наш вопрос из строки запроса.

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

В нашем примере это позволяет вывести вопрос, который мы хотим задать и несколько ссылок для ответа на него. Мы спрашиваем у пользователя, какую версию PHP он использует. Как только он нажмет на одну из ссылок, мы выведем ответ. Если ответ не выбран или если вводится неопределенный вариант, мы выводим вопрос, так как это наш вариант default.

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

PHP оператор switch позволяет сгруппировать несколько вариантов в одном case. С его помощью в PHP вы также можете сравнить строки.

Вот небольшой пример:

$color = "красный";
switch($color)
{
    case "красный":
    case "синий":
    case "зеленый":
        echo "Хороший цвет!";
        break;
    case "черный":
        echo "Слишком темный!";
        break;
    case "белый":
        echo "слишком светлый!";
        break;
}