Этот тренажер посвящен одному из фундаментальных типов данных в PHP — булевым значениям. Вы узнаете, что такое `true` и `false`, как они используются для управления логикой программы и принятия решений. Задания построены так, чтобы вы постепенно переходили от простого создания булевых переменных к более сложным концепциям, таким как операторы сравнения и логические операции. Вам предстоит исправлять ошибки, собирать код из частей, предсказывать результат выполнения скриптов и сортировать значения по их "правдивости". Этот набор упражнений поможет вам понять, как компьютер принимает решения на основе простых "да" или "нет", и как применять это в своих PHP-проектах.
- Модуль 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+
Создание булевых переменных
В PHP существуют два булевых значения: `true` для истины и `false` для лжи. Ваша задача — создать две переменные: `$is_logged_in`, присвоив ей значение "истина", и `$is_admin`, присвоив ей значение "ложь".
<?php
// Пользователь авторизован
$is_logged_in = input1S;
// Пользователь не является администратором
$is_admin = input2S;
var_dump($is_logged_in);
var_dump($is_admin);Как PHP выводит булевы значения?
Функции `echo` и `var_dump()` по-разному обрабатывают булевы значения. Посмотрите на код и определите, что именно он выведет на экран. Обратите внимание, что вывод будет слитным.
<?php
$has_access = true;
$is_blocked = false;
echo $has_access;
echo $is_blocked;
var_dump($has_access);Найдите ошибку в условии
Этот код должен выводить сообщение "Доступ разрешен" только если `$is_editor` равен `true`. Однако, он выводит сообщение всегда. Найдите и исправьте ошибку в строке с `if`.
<?php$is_editor = false; // Проверяем, является ли пользователь редакторомif ($is_editor = true) { echo "Доступ разрешен";}?>Результат логического отрицания
В PHP логический оператор `!` (НЕ) инвертирует булево значение: `true` становится `false` и наоборот. Что выведет на экран этот код после всех преобразований?
<?php
$is_active = false;
var_dump(!$is_active);
?>Операторы сравнения и их результат
Операторы сравнения всегда возвращают булево значение: `true` или `false`. Сопоставьте выражения в левой колонке с правильным результатом их выполнения в правой.
5 > 10"hello" === "hello"2 != "2"(bool) 1Истинные и ложные ("truthy" и "falsy") значения
В PHP не только `false` считается ложью в логических выражениях. Существует целый ряд "falsy"-значений. Распределите представленные значения по двум группам: те, что приводятся к `true`, и те, что приводятся к `false`.
0"hello"[]-1"0"[1, 2]nullСборка сложного условия
Соберите условие для доступа к административной панели. Доступ должен быть разрешен, если у пользователя есть права администратора (`$is_admin`) И при этом он не заблокирован (`$is_banned`). Используйте токены из банка.
<?php
$is_admin = true;
$is_banned = false;
if ($is_admin input1S input2S$is_banned) {
echo "Добро пожаловать, администратор!";
}
?>Проверка наличия товара
Соберите из фрагментов кода скрипт, который проверяет, что количество товара больше нуля (`$stock_count > 0`) и товар активен (`$is_active`). Если оба условия верны, он должен выводить "Товар в наличии".
<?php$stock_count = 10;$is_active = true;if ($is_active && $stock_count > 0) {echo "Товар в наличии";}echo "Проверка завершена";if ($is_active || $stock_count > 0) {