Menu
CoddyTech

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

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