Php операции с переменными

Php операции с переменными

В PHP мы можем использовать различные операторы: арифметические, логические и т.д. Рассмотрим каждый тип операций.

Арифметические операции

  • + (операция сложения) Например, $a + 5
  • — (операция вычитания) Например, $a — 5
  • * (умножение) Например, $a * 5
  • / (деление) Например, $a / 5
  • % (получение остатка от деления) Например:
$a = 8 + 2; // 10, сложение $a = 8 - 2; // 6, вычитание $a = 8 * 2; // 16, умножение $a = 8 / 2; // 4, деление $a = 8 % 2; // 0, деление по модулю $a = 8 ** 2; // 64, возведение в степень

Инкремент и декремент

Отдельно следует сказать операции инкремента и декремента , которые также являются арифметическими операциями, но производятся над одним операндом.

Инкремент — операция ++ увеличивает число на единицу. Например, ++$a

Есть два типа инкремента: префиксный инкремент ( ++$a ) и постфиксный ( $a++ ). Важно понимать разницу между этими операциями. Рассмотрим сначала префиксный инкремент:

$a = 12; $b = ++$a; // $b равно 13 echo "a = $a b = $b";

Здесь сначала к значению переменной $a прибавляется единица, а затем ее значение приравнивается переменной $b.

Теперь посмотрим, что будет в случае с постфиксным инкрементом:

$a = 12; $b = $a++; // $b равно 12 echo "a = $a b = $b";

Здесь сначала значение переменной $a передается переменной $b, а затем происходило увеличение значения переменной $a.

Декремент — операция — представляет уменьшение значения на единицу. Она аналогично инкременту бывает префиксной и постфиксной и работает аналогично. Например, префиксный декремент:

$a = 12; $b = --$a; // $b равно 11 echo "a = $a b = $b";

Сначала значение переменной $a уменьшается на единицу, а затем ее значение приравнивается переменной $b.

$a = 12; $b = $a--; // $b равно 12 echo "a = $a b = $b";

Здесь же сначала значение переменной $a передается переменной $b и только после этого уменьшается на единицу.

Объединение строк

Для объединения строк используется оператор «точка». Например, соединим несколько строк:

$a="Привет, "; $b=" мир"; echo $a . " " . $b . "!"; // Привет мир!

Если переменные представляют не строки, а другие типы, например, числа, то их значения преобразуются в строки и затем также происходит операция объединения строк.

Операции сравнения

Операции сравнения, как правило, применяются в условных конструкциях, когда надо сравнивать два значения, и в зависимости от результата сравнения выполнить некоторые действия. Имеются следующие операции сравнения.

  • == Оператор равенства сравнивает два значения, и если они равны, возвращает true, иначе возвращает false: $a == 5
  • === Оператор тождественности также сравнивает два значения, и если они равны, возвращает true, иначе возвращает false: $a === 5
  • != Сравнивает два значения, и если они не равны, возвращает true, иначе возвращает false: $a != 5
  • !== Сравнивает два значения, и если они не равны, возвращает true, иначе возвращает false: $a !== 5
  • > Сравнивает два значения, и если первое больше второго, то возвращает true, иначе возвращает false: $a > 5
  • < Сравнивает два значения, и если первое меньше второго, то возвращает true, иначе возвращает false: $a < 5
  • >= Сравнивает два значения, и если первое больше или равно второму, то возвращает true, иначе возвращает false: $a >= 5

Оператор равенства и тождественности

Оба оператора сравнивают два выражения и возвращают true, если выражения равны. Но между ними есть различия. Если в операции равенства принимают два значения разных типов, то они приводятся к одному — тому, который интерпретатор найдет оптимальным. Например:

$a = (2 == "2"); // true (значения равны) $b = (2 === "2"); // false (значения представляют разные типы)

Строка «2» по сути представляет то же значение, что и число 2, оператор сравнения возвратит true . Однако они представляют разные типы, поэтому оператор тождественности возвратит false

Аналогично работают операторы неравенства != и !== .

$a = (2 != "2"); // false, так как значения равны $b = (2 !== "2"); // true, так как значения представляют разные типы

Оператор

  • 0, если оба значения равны
  • 1, если значение слева больше, чем значение справа
  • –1, если значение слева меньше, чем значение справа
$a = 2 2; // 0 (эквивалентно 2 == 2) $b = 3 2; // 1 (эквивалентно 3 > 2) $c = 1 2; // -1 (эквивалентно 1 < 2) echo "a=$a b=$b c=$c"; // a=0 b=1 c=-1

Логические операции

Логические операции обычно применяются для объединения результатов двух операций сравнения. Например, нам надо выполнить определенное действие, если истинны будут несколько условий. Имеются следующие логические операции:

  • && Возвращает true, если обе операции сравнения возвращают true, иначе возвращает false: $a && $b
  • and Аналогично операции && : $a and $b
  • || Возвращает true, если хотя бы одна операция сравнения возвращают true, иначе возвращает false: $a || $b
  • or Аналогично операции || : $a or $b
  • ! Возвращает true, если операция сравнения возвращает false: !$a
  • xor Возвращает true, если только одно из значений равно true. Если оба равны true или ни одно из них не равно true, возвращает false: $a xor $b

Примеры логических операций:

$a = (true && false); // false // аналогично $a = (true and false); // false $b = (true || false); // true // аналогично следующей операции $b = (true or false); // true $c = !true; // false

Отдельно примеры с операцией xor :

$a = (true xor true); // false $b = (false xor true); // true $c = (false xor false); // false

Поразрядные операции

Поразрядные операции производятся над отдельными разрядными или битами числа. Числа рассматриваются в двоичном представлении, например, 2 в двоичном представлении 010, число 7 - 111.

    & (логическое умножение) Умножение производится поразрядно, и если у обоих операндов значения разрядов равно 1, то операция возвращает 1, иначе возвращается число 0. Например:

$a = 4; //100 $b = 5; //101 echo $a & $b; // равно 4 - 100
$a = 4; //100 $b = 5; //101 echo $a | $b; // равно 5 - 101
$a = 5 ^ 4; // 101^100=001 - в десятичой системе 1 $b = 7 ^ 4; // 111^100=011 - в десятичой системе 3
$a = 4; //00000100 $b = ~$a; //11111011 -5 echo $b; // равно -5

Операции присваивания

  • = Приравнивает переменной определенное значение: $a = 5
  • += Сложение с последующим присвоением результата. Например:
$a=12; $a += 5; echo $a; // равно 17
$a=12; $a *= 5; echo $a; // равно 60
$a=12; $a /= 5; echo $a; // равно 2.4
$a=12; $a .= 5; echo $a; // равно 125 // идентично $b="12"; $b .="5"; // равно 125
$a=8; $a **= 2; echo $a; // равно 64 (8 в степени 2)

Приоритет операций

Если одно выражение содержит несколько разных операций, то при выполнении выражения учитывается приоритет операций. Сначала выполняются операции с большим приоритетом и в конце с меньшим приоритетом.

Приоритет операций можно описать следующей таблицей:

Источник

Php операции с переменными

Помните школьные основы арифметики? Описанные ниже операторы работают так же.

Арифметические операции

Пример Название Результат
+$a Идентичность Конвертация $a в int или float , что более подходит.
-$a Отрицание Смена знака $a .
$a + $b Сложение Сумма $a и $b .
$a - $b Вычитание Разность $a и $b .
$a * $b Умножение Произведение $a и $b .
$a / $b Деление Частное от деления $a на $b .
$a % $b Деление по модулю Целочисленный остаток от деления $a на $b .
$a ** $b Возведение в степень Возведение $a в степень $b .

Операция деления ("/") возвращает число с плавающей точкой, кроме случая, когда оба значения являются целыми числами (или строками, которые преобразуются в целые числа), которые делятся нацело - в этом случае возвращается целое значение. Для целочисленного деления используйте intdiv() .

При делении по модулю операнды преобразуются в целые числа ( int ) (путём удаления дробной части) до начала операции. Для деления по модулю чисел с плавающей точкой используйте fmod() .

Результат операции остатка от деления % будет иметь тот же знак, что и делимое — то есть, результат $a % $b будет иметь тот же знак, что и $a . Например:

echo ( 5 % 3 ). "\n" ; // выводит 2
echo ( 5 % - 3 ). "\n" ; // выводит 2
echo (- 5 % 3 ). "\n" ; // выводит -2
echo (- 5 % - 3 ). "\n" ; // выводит -2

Источник

Читайте также:  Функция matches на python
Оцените статью