Codebra
29 января 2026 в 19:27

Урок 7. Условная конструкция if-elseif-else в PHP

Изучим условные конструкции if-elseif-else в PHP. Профессиональное применение в своей программе.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по PHP. Курс был написан в 2024 году одним из первых учеников Codebra и, к моменту написания курса, опытным бэкэнд-разработчиком. К сожалению, курс не был дописан, а его автор молча пропал.

Полный список уроков доступен по тегу Архивный курс по PHP и на странице первого урока.

📝 Кратко

Основы условных конструкций в PHP

  • Условные конструкции используются для управления ходом программы в зависимости от условий.
  • Условные операторы позволяют выразить "да" и "нет" через true и false.
  • Блок if выполняется при истинном условии, блок else - при ложном.

Множественное ветвление

  • Для обработки нескольких вариантов используется множественное ветвление.
  • Пример: проверка возраста клиента для покупки билетов на мероприятие.

Инвертирование высказываний

  • Инвертирование условия позволяет заменить исходное логическое выражение на противоположное.
  • Оператор логического отрицания (!) используется для инвертирования условий.
  • Примеры инвертирования сложных условий с использованием операторов &&, || и ==.

Улучшение читаемости кода

  • Инвертирование условий упрощает код и повышает его читаемость.
  • Примеры инвертирования условий для улучшения читаемости кода.

Задачи для практики

  • Примеры задач на проверку четности числа, совершеннолетия, температуры, скидки на покупку, времени суток, оценки, дня недели, возраста и категории билета, а также проверку на отсутствие данных и число не больше определенного значения.

Следующий урок

В предыдущем уроке мы с вами изучили работу со строками. Давайте научимся управлять ходом нашей программы в разных условиях.

Как же мне нравятся условные конструкции, ни одна программа без них не обходится. Условные конструкции очень легки в понимании, а их использование — настоящее искусство.

Представьте, что вы идёте по улице, и все вокруг оборачиваются на вас. Вы проходите мимо магазина с выпечкой и чувствуете этот удивительный запах. Вам приходится выбирать: купить или пройти мимо? Этот выбор между «да» и «нет» можно обозначить как true и false, соответственно. Чтобы наше условие работало, нам нужно его реализовать:

<?php
	$yes = true; // true также можно записать как и 1

	if ($yes) { // if вход в условие, если пременная $yes равняется true
		echo "Пойти";
	} else { // else если условие не выполнилось, отработает этот блок кода
		echo "Не пойти";
	}
?>

После выполнения этого кода на экране выведется текст «Пойти», потому что переменная $yes равна true. В блоке if выполнится код при истинном результате условия (true), если будет false, то выполнится код в блоке else. Напишите сами сейчас вот таких простых пару штук примеров и вы всё поймёте.

Множественное ветвление

Что делать, если у нас есть два или три выбора? В этом случае поможет множественное ветвление. Представим, что к нам обратился клиент с просьбой доработать сайт для покупки билетов на мероприятие. Условие: человек должен быть не моложе 18 и не старше 50 лет. Клиент вводит свой возраст, а мы должны вывести, подходит ли он под это условие или нет.

Напишем код:

<?php
	$age = 25;

	if ($age < 18) { // Всегда начинается с этого момента
		echo "Вы еще слишком молоды. Приходите когда подрастете.";
	} elseif($age >= 18 && $age < 30) { // elseif позволяет делать 
	                                    // множественное ветвление
		echo "Вы в расцвете сил! Будем гулять всю ночь?"; // Распечатает это сообщение
	} elseif ($age >= 30 && $age < 50) {
		echo "Вы достигли зрелости. Ночь будет короткой :(";
	} elseif ($age >= 50 && $age < 120) {
		echo "Вы обладаете большим жизненным опытом. Но купить проход в клуб не выйдет.";
	} else {
		echo "Ой... вы ошиблись с возрастом или вам надо в книгу рекордов гинесса :)";
	}
?>

В коде интерпретатор сначала зайдет в первый if. Если условие окажется ложным, он перейдет по цепочке вниз до блока else. Что касается оператора &&, о нем я писал в уроке про операторы в PHP. Он означает логическую операцию "И". Например, если 25 больше 18 "И" меньше 29, то оператор < не включает число 30.

Инвертирование высказываний в конструкции if-else

Инвертирование условия в PHP – это процесс, при котором исходное логическое выражение заменяется на противоположное. Для достижения этого используется оператор логического отрицания (!). Рассмотрим пример: если у нас есть условие if ($a > $b), его инвертированная версия будет выглядеть так: if (!($a > $b)), что эквивалентно if ($a <= $b).

При инвертировании сложных условий следует учитывать все логические операторы, такие как &&, ||, и . Например, условие if ($a $b && $c > $d) после инверсии станет if (!($a == $b && $c > $d)), что эквивалентно if ($a != $b || $c <= $d).

Инвертирование условий полезно для упрощения кода, повышения его читаемости и избегания вложенности.

Исходное условие:

<?php
	$userAge = 18;
	$hasID = true;

	if ($userAge >= 18 && $hasID) { 
		echo "Access granted";
		// Здесь мы пишем остальной код 
	} else {
		echo "Access denied"; 
	}
?>

Инвертированное условие:

<?php
	$userAge = 18;
	$hasID = true;
	
	if (!($userAge >= 18 && $hasID)) { 
		echo "Access denied"; 
	}

	// Здесь остальной код
?>

В этих примерах мы с вами разобрали одно условие, где у нас есть два значения: возраст $userAge и удостоверение личности $hasId. В первом случае, если условие выполняется, мы сразу в этом блоке пишем остальной код программы, что может быть затруднительно. Во втором примере применено инвертирование: если условие не выполняется, выводится Access denied, а остальной код пишется ниже, что улучшает читаемость кода. Конечно, условие можно было написать и по-другому, но этим вы уже займётесь в задачах. Главное — потренируйтесь (по началу я тоже путался и задавался вопросом, зачем они нужны, но в реальном программировании они всегда выручают, поверьте мне).

Вы думаете это всё? В следующем уроке изучим альтернативный синтаксис условных конструкций. Решайте задачи и переходите к следующему уроку.

Задачи

  1. Проверка четности числа: Напишите программу, которая принимает число и выводит "Четное", если число четное, и "Нечетное" — если нечетное. (привет математика).
  2. Проверка совершеннолетия: Напишите скрипт, который принимает возраст пользователя и выводит "Вы совершеннолетний", если возраст больше или равен 18, и "Вы несовершеннолетний" — если меньше.
  3. Проверка температуры: Программа должна принимать значение температуры и выводить "Жарко", если температура больше 30 градусов, и "Прохладно" — если 30 и ниже.
  4. Скидка на покупку: Напишите код, который проверяет сумму покупки. Если сумма больше 1000, применяйте скидку 10% и выводите новую цену. Если меньше или равна 1000, выводите полную цену без скидки.
  5. Напишите программу, которая принимает значение текущего часа (0–23) и выводит:
    • "Доброе утро" — если время с 5 до 11 часов.
    • "Добрый день" — если с 12 до 17.
    • "Добрый вечер" — если с 18 до 22.
    • "Доброй ночи" — если с 23 до 4.
  1. Напишите код, который принимает оценку (0-100) и выводит:
    • "Отлично" — если оценка 90 и выше.
    • "Хорошо" — если от 70 до 89.
    • "Удовлетворительно" — если от 50 до 69.
    • "Неудовлетворительно" — если ниже 50.
  1. Создайте программу, которая принимает день недели (1-7) и выводит режим работы:
    • "Магазин закрыт" — если это понедельник (1).
    • "Магазин работает с 9:00 до 18:00" — если это вторник-пятница (2-5).
    • "Магазин работает с 10:00 до 16:00" — если это суббота (6).
    • "Магазин работает с 11:00 до 15:00" — если это воскресенье (7).
  1. Программа принимает возраст и выводит категорию билета:
    • "Детский" — если возраст до 12 лет.
    • "Подростковый" — если от 13 до 17 лет.
    • "Взрослый" — если от 18 до 64 лет.
    • "Пенсионный" — если 65 лет и старше.
  1. Проверка на отсутствие данных: Напишите код, который проверяет переменную на отсутствие значения (пустая строка или null) и выводит "Пожалуйста, введите данные", если переменная пуста. В противном случае выводит "Данные приняты". (на пустую строку можно проверить вот так $var === "" )
  2. Проверка на число не больше определенного значения: Создайте переменную $number. Если число не больше 50, выводит "Число меньше или равно 50". Если число больше 50, выводит "Число больше 50". Используйте инвертирование условий для реализации этой задачи.
📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу PHP.