Условия (if/else/switch) в PHP 8.2: подробное руководство
Условия (if/else/switch) в PHP
Что такое условия и зачем они нужны?
Представь, что ты — капитан космического корабля. Твои действия зависят от того, что ты видишь на экране радара:
- Если впереди астероид — нужно изменить курс.
- Если рядом дружеский корабль — можно включить маяк.
- Если ничего нет — лететь прямо.
В программировании такие решения принимаются с помощью условных операторов. Они позволяют программе выполнять разные действия в зависимости от того, выполняется ли условие (TRUE) или нет (FALSE).
Основной синтаксис
1. Оператор if
Самый простой вариант: «Если это правда, то сделай что-то».
<?php
$age = 10;
if ($age >= 7) {
echo "Ты уже школьник!";
}
?>
Здесь проверяется: возраст больше или равен 7? Если да — выводится сообщение.
2. Оператор if...else
Добавляем второй вариант: «Если правда — сделай одно, иначе — другое».
<?php
$temperature = 25;
if ($temperature > 20) {
echo "На улице тепло, иди гулять!";
} else {
echo "Лучше останься дома и почитай книгу.";
}
?>
3. Оператор if...elseif...else
Когда вариантов больше двух, используем цепочку проверок:
<?php
$score = 85;
if ($score >= 90) {
echo "Отлично!";
} elseif ($score >= 70) {
echo "Хорошо!";
} elseif ($score >= 50) {
echo "Неплохо, можно лучше.";
} else {
echo "Нужно подтянуть знания.";
}
?>
4. Тернарный оператор (короткая запись)
Для простых условий можно использовать короткую запись:
<?php
$isSunny = true;
$weather = $isSunny ? "Солнечно ☀️" : "Пасмурно ☁️";
echo $weather;
?>
5. Оператор switch
Когда нужно сравнить одну переменную с множеством конкретных значений, switch делает код чище, чем длинная цепочка elseif.
<?php
$day = 3;
switch ($day) {
case 1:
echo "Понедельник";
break;
case 2:
echo "Вторник";
break;
case 3:
echo "Среда";
break;
default:
echo "Не знаю такой день";
}
?>
Важно: после каждого case пишем break, иначе программа продолжит выполнять следующие case (это называется «проваливание»).
Разбор типичных задач
Задача 1. Что больше?
Программа берёт два числа и выводит, какое из них больше.
<?php
$first = (int)readline("Введите первое число: ");
$second = (int)readline("Введите второе число: ");
if ($first > $second) {
echo "Первое число ($first) больше второго ($second)";
} elseif ($second > $first) {
echo "Второе число ($second) больше первого ($first)";
} else {
echo "Числа равны";
}
?>
Задача 2. Чётность числа
Лиза собирает ракушки и хочет знать, чётное ли у неё количество.
<?php
$shells = (int)readline("Сколько ракушек ты собрала? ");
if ($shells % 2 == 0) {
echo "У тебя чётное количество ракушек! Можно разложить парами.";
} else {
echo "Нечётное количество. Одна ракушка останется лишней.";
}
?>
Оператор % (остаток от деления) — лучший друг при проверке чётности.
Задача 3. Парк аттракционов (возрастные зоны)
<?php
$age = (int)readline("Сколько тебе лет? ");
if ($age < 3) {
echo "Только с родителями в зону для малышей";
} elseif ($age <= 7) {
echo "Детская зона (карусели, батуты)";
} elseif ($age <= 14) {
echo "Подростковая зона (американские горки, экстрим)";
} elseif ($age <= 60) {
echo "Взрослая зона (все аттракционы)";
} else {
echo "Зона отдыха (скамейки, кафе)";
}
?>
Задача 4. Магазин сладостей (скидки)
<?php
$amount = (float)readline("Введите сумму покупки: ");
if ($amount > 1000) {
$discount = $amount * 0.1;
$total = $amount - $discount;
echo "Поздравляем! Вы получаете скидку 10%.\n";
echo "Сумма со скидкой: $total руб.";
} else {
echo "Скидка не предоставляется. Сумма к оплате: $amount руб.";
}
?>
Частые ошибки новичков
- Ошибка 1: Путают = и ==
=— это присваивание, а==— сравнение.
Неправильно:if ($a = 5)— присвоит 5 и вернёт TRUE.
Правильно:if ($a == 5)— проверит, равно ли 5. - Ошибка 2: Забывают break в switch
Если не поставить break, выполнение «провалится» в следующий case. - Ошибка 3: Неправильный порядок условий
В if...elseif проверки идут сверху вниз. Первое совпадение — победа.
Всегда ставьте самые строгие условия в начале. - Ошибка 4: Забывают про else
Если нужно обработать все варианты, всегда добавляйте else в конце.
Итоговый пример: Путешествие в горы
Алекс изучает карту маршрута. Он вводит высоту участка, а программа определяет сложность:
<?php
$height = (int)readline("Введите высоту подъёма (метры): ");
if ($height <= 0) {
echo "Это не подъём, а спуск или равнина. Идти легко!";
} elseif ($height <= 200) {
echo "Лёгкий подъём. Подойдёт для новичков.";
} elseif ($height <= 500) {
echo "Средняя сложность. Нужна хорошая физическая форма.";
} elseif ($height <= 1000) {
echo "Сложный подъём. Требуется опыт и снаряжение.";
} else {
echo "Экстремальный уровень! Только для профессионалов.";
}
?>
Как это работает:
- Программа просит пользователя ввести число (высоту).
- Проверяет первое условие: если 0 или меньше — выводит "лёгкий спуск".
- Если нет — проверяет следующее: до 200 метров — "лёгкий подъём".
- И так далее, пока не найдёт подходящий диапазон.
- Если ни одно условие не подошло (высота больше 1000) — срабатывает else.
Условия — это основа логики в программировании. Освоив if, else и switch, ты сможешь писать программы, которые «думают» и принимают решения как настоящие помощники!