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"