switch — Альтернатива if-elseif-else

Когда нужно проверить одно значение на несколько случаев, switch удобнее.

$day = "среда";

switch ($day) {
    case "понедельник":
        echo "Начало недели!";
        break;
    case "среда":
        echo "Середина недели!";
        break;
    case "пятница":
        echo "Скоро выходные!";
        break;
    default:
        echo "Обычный день.";
}

🔹 default выполняется, если ни один case не сработал.

🔹 break предотвращает выполнение следующих case.

Пример без break

$day = "среда";

switch ($day) {
    case "понедельник":
    case "вторник":
    case "среда":
    case "четверг":
    case "пятница":
        echo "Продуктивного рабочего дня!";
        break;
    case "суббота":
    case "воскресенье":
        echo "Хорошего выходного!";
        break;
    default:
        echo "Нет такого дня";
}

Оператор switch выполняет нестрогое сравнение (==)

🔹 Как это работает?

При сравнении значений в case PHP автоматически приводит типы данных, как при использовании ==.

$value = "10";

switch ($value) {
    case 10:
        echo "Число 10";
        break;
    case "10":
        echo "Строка 10";
        break;
}

Вывод: "Число 10"

➡️ PHP привёл строку "10" к числу 10 и выбрал первый подходящий case.

🔹 Пример с разными типами

$value = false;

switch ($value) {
    case 0:
        echo "Это 0";
        break;
    case false:
        echo "Это false";
        break;
}

Вывод: "Это 0"