🐘 PHP

Условия (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 "Экстремальный уровень! Только для профессионалов.";
}
?>

Как это работает:

  1. Программа просит пользователя ввести число (высоту).
  2. Проверяет первое условие: если 0 или меньше — выводит "лёгкий спуск".
  3. Если нет — проверяет следующее: до 200 метров — "лёгкий подъём".
  4. И так далее, пока не найдёт подходящий диапазон.
  5. Если ни одно условие не подошло (высота больше 1000) — срабатывает else.

Условия — это основа логики в программировании. Освоив if, else и switch, ты сможешь писать программы, которые «думают» и принимают решения как настоящие помощники!