Булевы значения (boolean)

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

Этот тренажер посвящен одному из фундаментальных типов данных в PHP — булевым значениям. Вы узнаете, что такое `true` и `false`, как они используются для управления логикой программы и принятия решений. Задания построены так, чтобы вы постепенно переходили от простого создания булевых переменных к более сложным концепциям, таким как операторы сравнения и логические операции. Вам предстоит исправлять ошибки, собирать код из частей, предсказывать результат выполнения скриптов и сортировать значения по их "правдивости". Этот набор упражнений поможет вам понять, как компьютер принимает решения на основе простых "да" или "нет", и как применять это в своих PHP-проектах.

Список тем

Создание булевых переменных

id: 38915_task_1

В 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);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Как PHP выводит булевы значения?

id: 38915_task_2

Функции `echo` и `var_dump()` по-разному обрабатывают булевы значения. Посмотрите на код и определите, что именно он выведет на экран. Обратите внимание, что вывод будет слитным.

Выберите правильный вариант ответа
<?php

$has_access = true;
$is_blocked = false;

echo $has_access;
echo $is_blocked;
var_dump($has_access);
Сообщения
Проверить
Показать подсказку

Найдите ошибку в условии

id: 38915_task_3

Этот код должен выводить сообщение "Доступ разрешен" только если `$is_editor` равен `true`. Однако, он выводит сообщение всегда. Найдите и исправьте ошибку в строке с `if`.

Найдите ошибку и исправьте
<?php
$is_editor = false;
 
// Проверяем, является ли пользователь редактором
if ($is_editor = true) {
    echo "Доступ разрешен";
}
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Результат логического отрицания

id: 38915_task_4

В PHP логический оператор `!` (НЕ) инвертирует булево значение: `true` становится `false` и наоборот. Что выведет на экран этот код после всех преобразований?

Что должно получиться?
<?php

$is_active = false;
var_dump(!$is_active);

?>
Сообщения
Проверить
Показать подсказку

Операторы сравнения и их результат

id: 38915_task_5

Операторы сравнения всегда возвращают булево значение: `true` или `false`. Сопоставьте выражения в левой колонке с правильным результатом их выполнения в правой.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
5 > 10
"hello" === "hello"
2 != "2"
(bool) 1
true
false
true
false
Сообщения
Проверить
Показать подсказку

Истинные и ложные ("truthy" и "falsy") значения

id: 38915_task_6

В PHP не только `false` считается ложью в логических выражениях. Существует целый ряд "falsy"-значений. Распределите представленные значения по двум группам: те, что приводятся к `true`, и те, что приводятся к `false`.

Перетяните элементы в соответствующие блоки
Приводится к true
Приводится к false
0
"hello"
[]
-1
"0"
[1, 2]
null
Сообщения
Проверить
Показать подсказку

Сборка сложного условия

id: 38915_task_7

Соберите условие для доступа к административной панели. Доступ должен быть разрешен, если у пользователя есть права администратора (`$is_admin`) И при этом он не заблокирован (`$is_banned`). Используйте токены из банка.

Нужно правильно расставить в пропуски предложенные варианты
<?php
$is_admin = true;
$is_banned = false;

if ($is_admin input1S input2S$is_banned) {
    echo "Добро пожаловать, администратор!";
}
?>
&&
||
!
==
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Проверка наличия товара

id: 38915_task_8

Соберите из фрагментов кода скрипт, который проверяет, что количество товара больше нуля (`$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) {
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру