Мы уже знаем, как использовать конструкцию `if` для выполнения кода при истинности условия. Но что делать, если условие ложно? Для этого существует конструкция `if-else`. Она позволяет определить два блока кода: один для случая, когда условие истинно, и второй — для всех остальных случаев. Это как развилка на дороге: если горит зеленый, едем прямо; иначе — поворачиваем. В этом наборе заданий мы научимся правильно писать конструкции `if-else`, разберем их работу на примерах, научимся исправлять ошибки и собирать из частей целые логические блоки. Мы также затронем `if-elseif-else` для создания целых цепочек проверок.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Iterator интерфейс
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- IteratorAggregate интерфейс
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Функция htmlspecialchars().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
1. Дополните конструкцию `else`
В коде уже есть проверка, совершеннолетний ли пользователь. Дополните код так, чтобы в случае, если пользователь младше 18 лет, на экран выводилось сообщение "Доступ запрещен". Вам нужно добавить блок `else`.
$age = 15;
if ($age >= 18) {
echo "Доступ разрешен";
} input1S {
echo input2S;
}2. Какой блок кода выполнится?
Проанализируйте код. Переменная `$balance` равна 500. Условие `if` проверяет, больше ли баланс 1000. В зависимости от результата проверки, будет выведено одно из двух сообщений. Выберите правильный вариант.
$balance = 500;
$shipping_cost = 50;
if ($balance > 1000) {
$shipping_cost = 0; // Бесплатная доставка
} else {
$shipping_cost = 100; // Стандартная доставка
}
echo "Стоимость доставки: " . $shipping_cost;3. Исправьте синтаксис `else`
Программист допустил распространенную ошибку, поставив точку с запятой сразу после ключевого слова `else`. Это нарушает синтаксис PHP и приводит к ошибке. Найдите и исправьте эту строку.
<?php$is_logged_in = false; if ($is_logged_in == true) { echo "Добро пожаловать!";} else; { echo "Пожалуйста, войдите.";}4. Соберите проверку четности числа
Используя предложенные фрагменты, соберите скрипт, который проверяет, является ли число в переменной `$number` четным. Для проверки четности используется оператор остатка от деления `%`. Если `$number % 2 == 0`, число четное. Лишние фрагменты использовать не нужно.
$number = 10;if ($number % 2 == 0) {echo "Четное";} else {echo "Нечетное";}if ($number % 2 != 0) {echo "Положительное";5. Цепочка проверок: `if-elseif-else`
Дополните код, чтобы он правильно классифицировал оценку. Если оценка равна 5, выводится "Отлично". Если 4 — "Хорошо". Во всех остальных случаях — "Нужно постараться". Вам нужно вставить ключевое слово `elseif` и его условие.
$grade = 4;
if ($grade == 5) {
echo "Отлично";
} input1S (input2S) {
echo "Хорошо";
} else {
echo "Нужно постараться";
}6. Что выведет сложная проверка?
Проследите за логикой выполнения этого кода. Проверки идут одна за другой. Как только одна из них оказывается истинной, выполняется ее блок, а остальные (`elseif` и `else`) игнорируются. Впишите итоговый результат в поле ответа.
$time = 18;
$greeting = "";
if ($time > 22) {
$greeting = "Доброй ночи!";
} elseif ($time > 17) {
$greeting = "Добрый вечер!";
} elseif ($time > 11) {
$greeting = "Добрый день!";
} else {
$greeting = "Доброе утро!";
}
echo $greeting;7. Соберите логику светофора из банка
Соберите работающую логику светофора, используя токены из банка. В зависимости от цвета в переменной `$color` должно выводиться правильное действие.
$color = "yellow";
input1S ($color == "green") {
echo "Идти";
} input2S ($color == "yellow") {
echo "Ждать";
} input3S {
echo "Стоять";
}