PHP: Операторы

В математике и программировании мы часто используем знаки операций, такие как +, -, * и другие. В программировании такие знаки называются операторами.

  • Оператор представляет собой символ или слово, которое обозначает действие.
  • Операнды являются значениями, к которым применяется оператор.

Пример:

<?php

print_r(8 + 2);

Здесь:

  • + является оператором
  • 8 и 2 являются операндами
  • результатом будет 10
операнд   оператор   операнд       результат
    8         +          2       →      10
    5         -          3       →      2
    4         *          3       →      12

Операции, которые требуют наличия двух операндов, называются бинарными. В случае сложения у нас есть два операнда: один слева от знака +, другой — справа. Если пропустить хотя бы один операнд, например, 3 + ;, то программа завершится с синтаксической ошибкой.

Унарные операторы

Существуют и унарные операции, которые работают с одним операндом. Пример:

<?php

print_r(-3); // => -3

В этом случае - является унарным оператором, а 3 является операндом. Интерпретатор получает команду: «возьми число 3 и измени его знак».

Оператор - может использоваться по-разному. Когда он стоит между двумя числами, это операция вычитания:

<?php

print_r(5 - 2);  // => 3
print_r(10 - 7); // => 3

Здесь - берет первое число и вычитает из него второе.

Эта разница особенно заметна при работе с отрицательными числами. Например:

<?php

// минус на минус дает плюс
print_r(5 - -2); // => 7

Сначала мы видим операцию вычитания: 5 - (...). Но справа стоит унарный минус -2, который превращает 2 в отрицательное число. В итоге получается: 5 - (-2) = 7.

Таким образом, значение - зависит от контекста: если рядом стоит другое число, это вычитание, иначе это смена знака числа.

То же самое касается и плюса:

<?php

print_r(+3);     // => 3
print_r(1 + +3); // => 4

Главное, что здесь нужно помнить: поведение и даже сама запись здесь полностью соответствует тому, как мы делали это в школе.

Ошибки при вычислениях и парсинге

Если воспринимать -3 как единое число, можно не заметить, что - является отдельным оператором со своим приоритетом. Например:

<?php

print_r(-3 ** 2);

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

Дело в порядке вычислений: сначала выполняется возведение в степень (**), а только потом применяется унарный минус. То есть программа считает так: -(3 ** 2) = -9. Про приоритет операций мы поговорим подробнее дальше по курсу.

Задание

Подводная лодка находится на глубине -81 м. Палуба спасательного корабля расположена на высоте +6 м над уровнем воды.

Рассчитайте и выведите на экран:

  1. Полное расстояние всплытия в метрах.
  2. Время подъема в минутах — лодка поднимается со скоростью 3 м/мин.

Обратите внимание, что результаты выведутся «слепленными» в одну строчку без пробела. Мы научимся решать эту проблему в будущих уроках.

Полезное

  • Всегда отбивайте арифметические операторы пробелами от своих операндов – это хороший стиль программирования.

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются