Menu
Coddy logo textTech

Operator Precedence

Часть раздела Основы путешествия по PHP на Coddy — урок 20 из 71.

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

<?php
echo 5 + 3 * 2; // Выводит: 11, а не 16
?>

PHP сначала умножает 3 × 2 (получая 6), затем прибавляет 5. Если бы операторы имели одинаковый приоритет, вычисление происходило бы слева направо: 5 + 3 = 8, затем 8 × 2 = 16. Но это работает не так.

Ниже приведен приоритет операторов, которые вы изучили, от самого высокого к самому низкому:

ПриоритетОператоры
Самый высокий** (возведение в степень)
Высокий* / %
Низкий+ -

Чтобы переопределить порядок по умолчанию, используйте круглые скобки. Операции внутри скобок всегда вычисляются в первую очередь:

<?php
echo (5 + 3) * 2;  // Выводит: 16
echo 2 ** 3 * 2;   // Выводит: 16 (8 * 2)
echo 2 ** (3 * 2); // Выводит: 64 (2^6)
?>

Если сомневаетесь, используйте круглые скобки, чтобы сделать ваши намерения понятными. Это делает ваш код более читаемым и предотвращает неожиданные результаты.

challenge icon

Задание

Легко

Прочитайте три числа из входных данных: a, b и c.

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

(a + b) * c ** 2

Это означает: сначала сложите a и b, затем умножьте полученную сумму на c, возведенное в степень 2.

Пример:

Если входные данные равны 2, 3 и 4, результатом должно быть 80, потому что:

  • Сначала сложите 2 + 3 = 5
  • Затем вычислите 4 ** 2 = 16
  • Наконец, умножьте 5 * 16 = 80

Попробуйте сами

<?php
// Чтение входных данных
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));

// TODO: Напишите ниже свой код для вычисления (a + b) * c ** 2

// Вывод результата
echo $result;
?>
quiz iconПроверьте себя

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

Все уроки раздела Основы