Операторы сравнения

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

Тренажер PHP

Операторы сравнения — это основа логики в программировании. Они как весы, которые помогают коду принимать решения: больше ли одно число другого, равны ли две строки, или может быть, они не только равны, но и одного типа данных? В этом тренажере мы пройдем путь от самых простых проверок вроде "больше" или "меньше" до коварного различия между "равно" (==) и "идентично" (===). Вы научитесь находить частые ошибки, предсказывать результат выполнения кода и собирать логические конструкции. Эти задания помогут вам понять, как PHP сравнивает значения, что особенно важно при работе с формами и данными от пользователей. Приготовьтесь, будет интересно и немного запутанно, как и положено в мире программирования!

Список тем

1. Сопоставьте оператор и его назначение

id: 38925_task_compare_1

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

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Проверяет, равны ли значения (с приведением типов)
Проверяет, равны ли значения И совпадают ли их типы
Проверяет, что значение слева больше значения справа
Проверяет, что значения не равны
Проверяет, что значения не идентичны (не равны или не совпадают по типу)
!==
===
==
!=
>
Сообщения
Проверить
Показать подсказку

2. Проверка возраста

id: 38925_task_replace_2

Вам нужно написать условие, которое проверяет, что возраст пользователя ($age) строго больше 18 лет. Заполните пропуск в коде, чтобы условие работало правильно.

Заполните пропуски
$age = 25;
$message = '';

if ($age input1S 18) {
    $message = "Доступ разрешен.";
}

echo $message;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

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

id: 38925_task_error_3

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

Найдите ошибку и исправьте
<?php
$role = 'user';
 
if ($role = 'admin') {
    echo "Добро пожаловать, администратор!";
} else {
    echo "Привет, пользователь!";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Результат нестрогого сравнения

id: 38925_task_give_result_4

PHP — язык с динамической типизацией, и он умеет "помогать", приводя типы данных при нестрогом сравнении. Посмотрите на код и напишите, что он выведет на экран. Ответ — это одно число.

Что должно получиться?
$number_from_string = '5';
$real_number = 5;

echo $number_from_string == $real_number;
Сообщения
Проверить
Показать подсказку

5. Равно или идентично?

id: 38925_task_predict_result_5

Теперь задача усложняется. Мы сравниваем ноль и булево значение `false`. Какой из двух `var_dump` выведет `bool(true)`? Выберите правильный вариант.

Выберите правильный вариант ответа
// Какой из этих выводов будет bool(true)?

// Вариант А
var_dump(0 == false);

// Вариант B
var_dump(0 === false);
Сообщения
Проверить
Показать подсказку

6. Правильный выбор: строгое и нестрогое неравенство

id: 38925_task_replace_6

Вам нужно заполнить два условия. В первом случае нужно убедиться, что переменные не просто не равны по значению, но и могут быть разного типа (использовать нестрогое неравенство). Во втором случае проверка должна быть строгой: переменные должны быть не идентичны (либо значение, либо тип не совпадают).

Заполните пропуски
$a = 1;
$b = '1';

// Проверяем, что значения не равны (нестрого)
if ($a input1S $b) {
    echo "Переменные не равны.";
} else {
    echo "Переменные равны.";
}

echo "\n"; // Перенос строки

// Проверяем, что переменные не идентичны (строго)
if ($a input2S $b) {
    echo "Переменные не идентичны.";
} else {
    echo "Переменные идентичны.";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

7. Истина или ложь?

id: 38925_task_sort_7

Давайте проверим ваше понимание приведения типов. Перед вами несколько выражений. Распределите их по двум колонкам в зависимости от того, какой результат они вернут: `true` или `false`.

Перетяните элементы в соответствующие блоки
Выражение вернёт TRUE
Выражение вернёт FALSE
100 == '100'
100 === '100'
null == 0
true != 1
'2' > 10
1 >= 1
Сообщения
Проверить
Показать подсказку

8. Соберите условие из банка

id: 38925_task_bank_fill_8

Используя фрагменты из "банка", соберите полную логическую конструкцию для проверки, имеет ли пользователь право на скидку. Скидка положена, если количество покупок (`$purchaseCount`) больше или равно 5.

Нужно правильно расставить в пропуски предложенные варианты
$purchaseCount = 7;

if ($purchaseCount input1S 5) {
    echo input2S;
} else {
    echo input3S;
}
'Скидка не положена.'
<=
>=
'Вам положена скидка!'
<
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

9. Космический корабль

id: 38925_task_give_result_9

В PHP есть оператор "космический корабль" (`<=>`), который сравнивает два выражения и возвращает -1, 0 или 1. Он возвращает -1, если левый операнд меньше правого, 0 — если они равны, и 1 — если левый операнд больше. Что выведет данный код?

Что должно получиться?
$a = 20;
$b = 100;

echo $a <=> $b;
Сообщения
Проверить
Показать подсказку

PHP: запуск кода в браузере

id: 38925_compiler

Погрузитесь в мир логики с операторами сравнения PHP! В этом примере вы увидите разницу между обычным (==) и строгим (===) равенством, что крайне важно для предотвращения скрытых ошибок в коде. Попробуйте изменить значения переменных, сравнить числа со строками или добавить свои собственные условия с использованием операторов 'больше' или 'меньше'. Экспериментируйте с разными типами данных и смотрите, как PHP выполняет приведение типов — это лучший способ понять механику языка на практике!

🐘
Запустить тренажёр (PHP)
НайтиКурс.Ру