Условные конструкции
15 минУсловные конструкции — это основа любой программы. Они позволяют выполнять разный код в зависимости от условий. Без них программы были бы просто последовательностью команд без какой-либо логики.
Зачем нужны условия?
Представьте: вы делаете интернет-магазин. Вам нужно:
- Показать кнопку "Купить" только если товар в наличии
- Применить скидку, если пользователь — VIP-клиент
- Отправить уведомление, если заказ больше 10 000 рублей
Всё это делается через условные конструкции.
if / else — базовое условие
Конструкция if проверяет условие. Если оно истинно (true), выполняется код в фигурных скобках. Если ложно (false) — выполняется блок else (если он есть).
Как это работает:
- PHP вычисляет выражение
$age >= 18 - Если результат
true(18 >= 18 — да) — выполняется первый блок - Если бы было
false— выполнился бы блокelse
$age на 15 и посмотрите, как изменится результат.
elseif — несколько условий
Когда нужно проверить несколько вариантов, используйте elseif. PHP проверяет условия по порядку сверху вниз и выполняет первый подходящий блок.
Порядок проверки важен! Для 75 баллов:
75 >= 90— нет, идём дальше75 >= 70— да! Выполняем этот блок, остальные пропускаем
$score >= 50, то 75 баллов получили бы "Удовлетворительно", а не "Хорошо". Всегда начинайте с самого строгого условия!
switch — выбор из вариантов
switch удобен, когда нужно сравнить переменную с несколькими конкретными значениями. Это чище, чем много if/elseif.
Обратите внимание:
break— обязателен после каждого case, иначе выполнятся ВСЕ следующие блокиdefault— выполняется, если ни один case не подошёл (какelse)- case 6 и 7 объединены — оба приводят к одному результату
Тернарный оператор — короткий if/else
Когда нужно присвоить значение переменной на основе условия, тернарный оператор делает код компактнее:
$переменная = условие ? значение_если_true : значение_если_false;
Null coalescing оператор (??)
Оператор ?? появился в PHP 7 и очень полезен при работе с данными, которые могут отсутствовать (например, из формы или API).
Он возвращает первое значение, которое не null и существует:
Это гораздо чище, чем:
$displayName = isset($username) && $username !== null ? $username : $defaultName;
Практические советы
-
if/else — для проверки условий (больше, меньше, равно и т.д.)-
switch — для сравнения с конкретными значениями (дни недели, статусы, роли)-
? : — для простого присваивания по условию-
?? — для работы с возможно отсутствующими данными
Материалы по теме
- Глоссарий digital-терминов Глоссарий
- Статьи блога по разработке и SEO Блог
- Практические чеклисты по внедрению Чеклисты