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 м над уровнем воды.
Рассчитайте и выведите на экран:
- Полное расстояние всплытия в метрах.
- Время подъема в минутах — лодка поднимается со скоростью 3 м/мин.
Обратите внимание, что результаты выведутся «слепленными» в одну строчку без пробела. Мы научимся решать эту проблему в будущих уроках.
Полезное
Всегда отбивайте арифметические операторы пробелами от своих операндов – это хороший стиль программирования.
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 м над уровнем воды.
Рассчитайте и выведите на экран:
- Полное расстояние всплытия в метрах.
- Время подъема в минутах — лодка поднимается со скоростью 3 м/мин.
Обратите внимание, что результаты выведутся «слепленными» в одну строчку без пробела. Мы научимся решать эту проблему в будущих уроках.
Полезное
Всегда отбивайте арифметические операторы пробелами от своих операндов – это хороший стиль программирования.
Ваше упражнение проверяется по этим тестам
<?php
namespace HexletBasics\Arithmetics\Operator;
use HexletBasics\Exercise\TestCase;
class SolutionTest extends TestCase
{
public function test()
{
$expected = '8729';
$this->assertOutput($expected);
}
}Решение учителя откроется через:
20:00
