Приоритет операторов

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

Тренажер PHP

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

Вам предстоит предсказывать результаты выражений, исправлять ошибки, связанные с неправильным приоритетом, и расставлять скобки для управления порядком вычислений. Задания построены от простого к сложному: начнем с базовой арифметики и закончим неочевидными случаями с логическими и строковыми операторами. Удачи!

Список тем

Базовая арифметика

id: 38933_task1

PHP, как и математика, следует правилам порядка операций. Умножение и деление выполняются раньше, чем сложение и вычитание. Проанализируйте выражение и укажите, какой результат будет выведен на экран.

Что должно получиться?
$result = 5 + 3 * 4;
echo $result;
Сообщения
Проверить
Показать подсказку

Влияние скобок

id: 38933_task2

Круглые скобки позволяют изменить стандартный приоритет операторов, заставляя PHP сначала вычислить выражение внутри них. Какой результат выведет этот код?

Выберите правильный вариант ответа
$result = (5 + 3) * 4;
echo $result;
Сообщения
Проверить
Показать подсказку

Управление порядком вычислений

id: 38933_task3

В коде задано выражение, но текущий результат не соответствует требуемому. Ваша задача — добавить одну пару круглых скобок `()` так, чтобы итоговый результат вычислений стал равен 1.

Заполните пропуски
// Требуемый результат: 1
$result = 10 / input1S 5 + 5 input2S;
echo $result;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Ошибка в сравнении

id: 38933_task4

В этом коде допущена одна очень распространенная ошибка, связанная с операторами. Код должен был вывести "Not equal", но выводит "Equal". Найдите строку с ошибкой и исправьте её так, чтобы сравнение работало корректно.

Найдите ошибку и исправьте
<?php
$value = 5;
 
if ($value = 10) {
    echo "Equal";
} else {
    echo "Not equal";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Неочевидная конкатенация

id: 38933_task6

Иногда сочетание операторов разных типов приводит к неожиданным результатам из-за правил приведения типов. Что выведет этот код? Обратите внимание, что здесь есть и строковый оператор (.), и арифметический (+).

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

$result = 'Результат: ' . $a + $b;

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

Ассоциативность операторов

id: 38933_task7

Когда у операторов одинаковый приоритет (например, у `+` и `-`), порядок их выполнения определяется ассоциативностью. Сопоставьте группы операторов с их типом ассоциативности.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Выполняются слева направо
Выполняются справа налево
Не могут группироваться
=, +=, ??, **
<, >, <=, >=
+, -, *, /, %
Сообщения
Проверить
Показать подсказку

Постфиксный и префиксный инкремент

id: 38933_task8

Операторы инкремента (`++`) могут вести себя по-разному в зависимости от их положения. `$a++` (постфиксный) сначала возвращает значение `$a`, а потом увеличивает его. `++$a` (префиксный) сначала увеличивает `$a`, а потом возвращает новое значение. Что выведет код?

Что должно получиться?
$a = 5;
$result = $a++ + ++$a;
echo $result;
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру