Menu
Coddy logo textTech

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

Часть раздела Основы путешествия по 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

Задание

Легко

Read три числа из input: a, b и c.

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

(a + b) * c ** 2

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

Пример:

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

  • First сложить 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Проверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор PHP