Знак операции, например, +
, называют оператором. Операторы обычно представлены одним или несколькими символами, реже — словом. Обычно они соответствуют математическим операциям.
Операторы выполняют операции над определенными значениями, которые называются операндами.
Рассмотрим пример:
<?php
print_r(8 + 2);
Здесь +
— это оператор, а числа 8
и 2
— это операнды.
Операции, которые требуют наличия двух операндов, называются бинарными. В случае сложения у нас есть два операнда: один слева от знака +
, другой — справа. Если пропустить хотя бы один операнд, например, 3 + ;
, то программа завершится с синтаксической ошибкой.
Еще операции бывают унарными — с одним операндом, и тернарными — с тремя операндами. Причем операторы могут выглядеть одинаково, но обозначать разные операции.
Символы +
и -
используются не только как операторы. Когда речь идет про отрицательные числа, то знак минуса становится частью числа:
<?php
print_r(-3); // => -3
Выше пример применения унарной операции к числу 3
. Оператор -
перед тройкой говорит интерпретатору взять число 3
и найти противоположное, то есть -3
. Это может сбить с толку, потому что -3
— это одновременно и число, и оператор с операндом. Но у языков программирования такая структура:
<?php
// То же самое, что и 4 - 3
print_r(4 + -3); // => 1
То же самое касается и плюса:
<?php
print_r(+3); // => 3
print_r(1 + +3); // => 4
Напишите программу, которая посчитает разность между числами 6
и -81
и выведет ответ на экран.
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Ваше упражнение проверяется по этим тестам
1<?php // phpcs:ignore PSR1.Files.SideEffects
2
3namespace HexletBasics\Arithmetics\Operator;
4
5use PHPUnit\Framework\TestCase;
6
7\HexletBasics\Functions\runScript();
8
9class Test extends TestCase
10{
11 public function test()
12 {
13 $expected = '87';
14 $this->expectOutputString($expected);
15 require 'index.php';
16 }
17}
18
Решение учителя откроется через: