Синтаксис: вычисления

Материал из PhpWiki.

Перейти к: навигация, поиск

Содержание

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

Их всего пять, вот они:

  • $a + $b - сложение
  • $a - $b - вычитание
  • $a * $b - умножение
  • $a / $b - деление
  • $a % $b - целочисленный остаток от деления

Операция деления («/») всегда возвращает число с плавающей точкой, даже если операнды являются целыми числами. Если вы хотите получить что-то вроде 123.45, используйте функцию форматирования значений sprintf() или number_format.

$formatted_money = sprintf("%01.2f", $money);

Строковые операции

Cтроковой операцией считается операция сложения двух строк. Причем выглядит она довольно необычно, но практично:

$c = $a.$b;
$c .= $e;

То есть символом этой операции является точка. А результатом ее выполнения будет обыкновенная строка, состоящая из $a и $b. Второй пример прибавляет к строке $c значение $e. Точка перед «равно» означает, что содержимое $c будет дополнено переменной $e.

Операция присвоения – она одна – это знак '=' и, естественно, этот знак означает, что переменной слева от него будет присвоенное значение, полученное в результате выполнения каких-либо операций, или переменной/константы с правой стороны.

$a = ($b = 4) + 5; // $a будет равна 9, а $b 4-м.
$a += 5; // аналогично $a = $a + 5;
$b = "Привет ";
$b .= "всем!"; // аналогично $b="Привет всем!"

Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), поэтому изменения в одной не влияют на другую.

Двоичные операции

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

  • $a & $b — Побитовое И (AND) – устанавливаются биты, которые установлены и в $a, и в $b.
  • $a | $b — Побитовое ИЛИ (OR) – устанавливаются биты, которые установлены в $a или в $b .
  • $a ^ $b — Исключающее или (XOR) – устанавливаются биты, которые установлены в $a или $b, но не в обоих
  • ~ $a — Отрицание – устанавливаются те биты, которые в $a не установлены, и наоборот.
  • $a << $b — Сдвиг влево на $b битов – сдвигает биты переменной $a на $b шагов влево (каждый шаг/смещение означает «умножить на 2»).
  • $a >> $b – — Сдвигает биты переменной $a на $b шагов вправо (каждый шаг/смещение означает «разделить на 2»).


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

  • $a and $b // И (AND)
  • $a && $b // То же самое, что и предыдущее
  • $a or $b // Или (OR)
  • $a || $b // То же, что и предыдущее
  • $a xor $b // Исключающее или (XOR)
  •  !$a // Инверсия (NOT)


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

Cравнивают два значения.


  • $a == $b // TRUE, если $a равно $b.
  • $a === $b // TRUE, если $a равно $b и они одного типа (добавлено в PHP 4).
  • $a != $b или $a <> $b // TRUE, если $a не равно $b
  • $a !== $b // TRUE, если $a не равно $b или они разных типов (добавлено в PHP 4).
  • $a < $b // TRUE, если $a строго меньше $b.
  • $a > $b // TRUE, если $a строго больше $b.
  • $a <= $b // TRUE, если $a меньше или равно $b.
  • $a >= $b // TRUE, если $a больше или равно $b.

В PHP, как и в C++, существует тернарный оператор '?:'. Кто не знает, объясню на примере.

$res= (expr1) ? (expr2) : (expr3);

Результатом этой операции будет значение (expr2) в том случае, если expr1 == TRUE, и значение expr3 – в противном случае. Где все эти expr1, expr2, expr3 являются переменными/константами или математическими выражениями. Такая запись по сути своей аналогична следующей:

if (expr1) $res = (expr2); else $res = (expr3);

но, естественно, более лаконична.

Операции инкремента/декремента

Операции pre- и post-инкремента и декремента в стиле С.

  • ++$a // Pre-increment Увеличивает $a на 1, затем возвращает $a.
  • $a++ // Post-increment Возвращает $a, затем увеличивает $a на 1.
  • --$a // Pre-decrement Уменьшает $a на 1, затем возвращает $a.
  • $a-- // Post-decrement Возвращает $a, затем уменьшает $a на 1.
Copyright http://phpclub.ru/faq/

Получите качественную бесплатную очную консультацию адвоката по семейному праву.

Реклама