Арифметические операторы в PHP. Что такое инкремент и декремент?

арифметические операторы в php. что такое инкремент и декремент?

Основные операторы

Арифметические операторы в PHP применяются в элементарных ситуациях: деление, умножение, сложение, вычитание и возведение в степень. Они полностью совпадают с теми, что вы изучали в математике. Однако присутствуют и два особенных оператора — это декремент и инкремент. Они так же просты, но их использование сопряжено с рядом особенностей. Инкремент и декремент мы изучим далее в статье, а пока рассмотрим список обычных арифметических операторов.

Список основных арифметических операторов:

Форма записи Операция Принцип работы
-$var Смена знака Если перед числом поставить «-» то оно сменит свой знак.
$var1 + $var2 Сложение Заменит выражение суммой двух операндов.
$var1 - $var2 Вычитание Заменит выражение разностью двух операндов.
$var1 * $var2 Умножение Заменит выражение произведением двух операндов.
$var1 / $var2 Деление Заменит выражение частностью двух операндов.
$var1 % $var2 Деление по модулю Возвратит целочисленный остаток от деления двух операндов.
$var1 ** $var2 Возведение в степень Возвратит результат возведения $var1 в степень $var2.
/**
* Примеры простых арифметических операций
*/
var_dump(10 + 10); //Результат: int(20)
var_dump(10 % 3); //Результат: int(1)
var_dump((10 * 8) / 4.5); //Результат: float(17.77)
var_dump(2**3); //Результат: int(8)

Процесс выполнения некоторых из этих операций имеет особенности:

  • Операция деления в PHP возвращает результат типа integer, только если оба операнда имеют тип integer, или операнды являются строками, но преобразуются в integer.

    Если один из операторов – целое число, а другой – дробное, но не имеет дробной части, то результат все равно будет дробным числом типа float.
  • Деление по модулю возвращает только целочисленный результат типа integer. Оба операнда перед осуществлением деления по модулю преобразуются в целые числа с отбрасыванием дробной части.
  • При делении по модулю результат будет того же знака что и первый операнд $var1.
//Деление двух целых чисел
var_dump(18 / 2); //Результат: int(9)

//Деление целого и дробного числа
var_dump(120 / 7.5); //Результат: float(16)

//Деление целого и дробного числа без дробной части
var_dump(65 / (float)5); //Результат: float(13)

//Деление по модулю двух дробных чисел
var_dump(17.5 % 5.25); //Результат: int(2)

//Деление по модулю. Отрицательное делимое
var_dump(-17.5 % 5.25); //Результат: int(-2)

Краткие версии

В PHP существуют краткие записи наиболее распространенных арифметических операторов. Их использование не обязательно, но некоторые программисты считают, что краткие записи делают их код лаконичнее и понятнее.

Список кратких версий операторов:

Форма записи Операция Принцип работы
$var1 += $var2 Сложение К операнду $var1 прибавляет $var2. После операции $var1 содержит результат.
$var1 -= $var2 Вычитание Из операнда $var1 вычитается $var2. После операции $var1 содержит результат.
$var1 *= $var2 Умножение Операнд $var1 умножается на $var2. После операции, $var1 содержит результат.
$var1 /= $var2 Деление Операнд $var1 делится на $var2. После операции, $var1 содержит результат.
//Краткая запись сложения двух чисел
$firstInteger = 10;
$firstInteger += 25;
var_dump($firstInteger); //Результат: int(35)


//Краткая запись деления двух чисел
$secondInteger = 30;
$secondInteger /= 5;
var_dump($secondInteger); //Результат: int(6)

Декремент и инкремент

Оператор декремента записывается как два символа вычитания идущих друг за другом «--», и служит для уменьшения на единицу операнда следующего прямо за ним. Оператор инкремента имеет обратное действие, он записывается как два символа сложения идущими друг за другом «++» и служит для увеличения на единицу операнда, следующего за ним.

Декремент и инкремент могут быть префиксными и постфиксными. Так как они являются унарными операторами, то принимают всего один операнд. Префиксными они являются, когда символьная запись оператора стоит перед операндом, над которым производится вычисление, а постфиксными, когда символьная запись оператора стоит сразу после операнда.

Заметка
В зависимости от того является оператор префиксным или постфиксным в значительной мере меняется его поведение. Если из описания видов операторов, следующего ниже, вам не понятно как это работает, то внимательно разберите примеры приведенные в конце статьи.

Виды записи декремента и инкремента:

Форма записи Операция Принцип работы
++$var Префиксный инкремент Заменяет значение оператора $var на результат $var + 1 и возвращает его.
$var++ Постфиксный инкремент Возвращает значение $var, а затем присваивает ей результат $var + 1 .
--$var Префиксный декремент Заменяет значение оператора $var на результат $var - 1 и возвращает его.
$var-- Постфиксный декремент Возвращает значение $var, а затем присваивает ей результат $var - 1 .
//Пример использования префиксного инкремента
$firstInteger = 10;
var_dump(++$firstInteger); //Результат: int(11)


//Пример использования постфиксного инкремента
$firstInteger = 10;
var_dump($firstInteger++); //Результат: int(10)
var_dump($firstInteger); //Результат: int(11)


//Пример использования префиксного декремента
$secondInteger = 10;
var_dump(--$secondInteger); //Результат: int(9)


//Пример использования постфиксного декремента
$secondInteger = 10;
var_dump($secondInteger--); //Результат: int(10)
var_dump($secondInteger); //Результат: int(9)

/**
* Постфиксный инкремент или декремент сначала
* возвраает значение переменной (которое и будет
* участвовать в исполнении выражения), и только
* затем изменяет его. Т.е измененное значение
* переменной будет доступно только при повторном
* его получении.
*/

Последние публикации