Когда простой развилки "да/нет" из `if-else` недостаточно, на помощь приходит `elseif`. Эта конструкция позволяет создавать целые цепочки проверок, где у каждого условия есть свой блок кода. Думайте об этом как о меню в ресторане: если есть первое блюдо — заказываем его, иначе, если есть второе — берём его, иначе берём десерт . В этом тренажере мы научимся строить такие логические цепочки. Вы будете заполнять пропуски в коде, предсказывать результат выполнения, исправлять синтаксические и логические ошибки, а также собирать сложные конструкции из фрагментов. Это ключевой навык для написания программ, способных обрабатывать множество различных сценариев.
- Модуль 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().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Добавление промежуточного условия
Дополните код, чтобы он проверял не только положительные и отрицательные числа, но и ноль. Используйте конструкцию `elseif` для проверки, равно ли число нулю.
$number = 0;
if ($number > 0) {
echo "Положительное";
} input1S ($number == 0) {
echo "Ноль";
} else {
echo "Отрицательное";
}Какой из блоков выполнится?
Проанализируйте цепочку условий. Переменная `$temperature` имеет значение `15`. Какое из условий окажется первым истинным и какое сообщение в итоге будет выведено на экран?
$temperature = 15;
if ($temperature > 25) {
echo "Жарко";
} elseif ($temperature > 10) {
echo "Тепло";
} else {
echo "Холодно";
}Исправьте синтаксис `elseif`
Программист по ошибке написал `else if` с пробелом. Хотя в некоторых языках это допустимо, в PHP стандартной и рекомендуемой формой является слитное написание `elseif`. Исправьте эту строку, чтобы код соответствовал стандарту.
$user_status = "moderator"; if ($user_status == "admin") { echo "Полный доступ";} else if ($user_status == "moderator") { echo "Доступ к управлению контентом";} else { echo "Ограниченный доступ";}Соберите систему оценки знаний
Из предложенных фрагментов кода соберите работающий скрипт, который выставляет оценку в зависимости от набранных баллов. Баллы хранятся в переменной `$score`. Используйте все необходимые части, чтобы покрыть все диапазоны. Некоторые фрагменты являются лишними и не должны использоваться.
$score = 82;if ($score >= 90) { echo "Отлично";} elseif ($score >= 75) { echo "Хорошо";} elseif ($score >= 50) { echo "Удовлетворительно";} else { echo "Неудовлетворительно";}if ($score < 50) {echo "Пересдача";Что выведет код с логическим "И"?
Внимательно изучите код. Здесь используется логический оператор `&&` (И), который требует, чтобы оба подусловия были истинными. Определите, какой блок кода выполнится, и впишите результат в поле ответа.
$role = "manager";
$department = "sales";
if ($role == "admin") {
echo "Полный доступ ко всем системам.";
} elseif ($role == "manager" && $department == "sales") {
echo "Доступ к отчетам по продажам.";
} elseif ($role == "manager") {
echo "Базовый доступ для менеджера.";
} else {
echo "Доступ запрещен.";
}Исправьте логическую ошибку в порядке условий
В этом коде есть логическая ошибка: проверка на `> 18` всегда будет срабатывать раньше, чем на `> 65`, из-за чего пенсионеры будут определяться просто как совершеннолетние. Чтобы исправить это, нужно проверять более строгие условия раньше. Впишите правильные числовые значения в пропуски, чтобы логика стала верной.
$age = 70;
if ($age > input1S) {
echo "Пенсионер";
} elseif ($age > input2S) {
echo "Совершеннолетний";
} else {
echo "Ребенок";
}Восстановите порядок в коде
Строки кода, определяющие время суток, перепутаны. Расставьте их в правильном логическом порядке, чтобы получился работающий скрипт.