231 lines
7.8 KiB
Markdown
231 lines
7.8 KiB
Markdown
---
|
||
title: PHP Operators
|
||
localeTitle: Операторы PHP
|
||
|
||
---
|
||
## Операторы PHP
|
||
|
||
### Приоритет оператора
|
||
|
||
Операторы в PHP, как и в математике, имеют свои приоритеты в выражениях.
|
||
Например:
|
||
Выражение "2 + 5 * 2" вычисляется как "12", а не "14", поскольку оператор умножения ("*") имеет более высокий приоритет, чем оператор сложения ("+").
|
||
|
||
Круглые скобки могут использоваться для принудительного указания порядка выполнения операторов.
|
||
Например:
|
||
Выражение "(2 + 3) * 4" вычисляется как "20".
|
||
|
||
Если операторы имеют равный приоритет, то будут ли они выполняться справа налево или слева направо определяется их ассоциативностью.
|
||
Например:
|
||
"-" является лево-ассоциативным оператором. Следовательно "3 - 5 - 7" сгруппируется как "(3 - 5) - 7" и пересчитается в "-9".
|
||
С другой стороны "=" - это право-ассоциативный оператор, так что "$a = $b = $c" сгруппируется как "$a = ($b = $c)".
|
||
|
||
Неассоциативные операторы с одинаковым приоритетом не могут использоваться совместно.
|
||
Например:
|
||
"1 < 2 > 1" не будет работать в PHP. Выражение "1 <= 1 == 1", с другой стороны, будет, поскольку "==" имеет более низкий приоритет чем "<=".
|
||
|
||
### Арифметические операторы
|
||
|
||
Арифметические операторы в PHP работают идентично арифметическим выражениям в математике.
|
||
|
||
Ниже указан список арифметических операторов PHP.
|
||
#### Идентичность
|
||
Конвертация $a в int или float, что более подходит.
|
||
|
||
+$a
|
||
|
||
#### Отрицание
|
||
Смена знака $a.
|
||
|
||
-$a
|
||
|
||
#### Сложение
|
||
Сумма $a и $b.
|
||
|
||
<?php
|
||
echo (4 + 2)."\n"; // выводит 6
|
||
?>
|
||
|
||
#### Вычитание
|
||
Разность $a и $b.
|
||
|
||
<?php
|
||
echo (4 - 2)."\n"; // выводит 2
|
||
?>
|
||
|
||
#### Умножение
|
||
Произведение $a и $b.
|
||
|
||
<?php
|
||
echo (4 * 2)."\n"; // выводит 8
|
||
?>
|
||
|
||
#### Деление
|
||
Частное от деления $a на $b.
|
||
|
||
<?php
|
||
echo (4 / 2)."\n"; // выводит 2
|
||
?>
|
||
|
||
#### Деление по модулю
|
||
Целочисленный остаток от деления $a на $b.
|
||
|
||
<?php
|
||
echo (5 % 2)."\n"; // выводит 1
|
||
?>
|
||
|
||
#### Возведение в степень
|
||
Возведение $a в степень $b. Добавлено в PHP 5.6.
|
||
|
||
<?php
|
||
echo (4 ** 2)."\n"; // выводит 16
|
||
?>
|
||
|
||
### Оператор присваивания
|
||
|
||
Базовый оператор присваивания обозначается символом "=".
|
||
Оператор присваивания означает, что левый операнд получает значение правого выражения.
|
||
|
||
Результатом выполнения оператора присваивания является само присвоенное значение:
|
||
|
||
<?php
|
||
$a = 3;
|
||
echo $a; // выводит 3
|
||
?>
|
||
|
||
<?php
|
||
$a = ($b = 3) + 4; // $a теперь равно 7, а $b было присвоено 3.
|
||
?>
|
||
|
||
### Строковые операторы
|
||
|
||
В PHP есть два оператора для работы со строками (string):
|
||
Первый - оператор конкатенации ('.'), который возвращает строку, представляющую собой соединение левого и правого аргумента.
|
||
Второй - оператор присваивания с конкатенацией ('.='), который присоединяет правый аргумент к левому.
|
||
|
||
<?php
|
||
$a = "Привет, ";
|
||
$b = $a . "Мир!"; // $b теперь содержит строку "Привет, Мир!"
|
||
|
||
$a = "Привет, ";
|
||
$a .= "Мир!"; // $a теперь содержит строку "Привет, Мир!"
|
||
?>
|
||
|
||
### Логические операторы
|
||
|
||
Логические операторы позволяют сравнивать результаты работы двух операндов (значения или выражения) с целью определения факта
|
||
возвращения одним из них или обоими значения true или false.
|
||
|
||
#### Оператор "И"
|
||
TRUE, если и $a, и $b TRUE.
|
||
|
||
$a and $b;
|
||
$a && $b
|
||
|
||
#### Оператор "ИЛИ"
|
||
TRUE, если или $a, или $b TRUE.
|
||
|
||
$a or $b;
|
||
$a || $b
|
||
|
||
#### Оператор "Исключающее ИЛИ"
|
||
TRUE, если $a, или $b TRUE, но не оба.
|
||
|
||
$a xor $b
|
||
|
||
#### Оператор "Отрицание"
|
||
TRUE, если $a не TRUE.
|
||
|
||
! $a
|
||
|
||
### Операторы сравнения
|
||
|
||
Данные операторы позволяют сравнивать между собой два значения.
|
||
|
||
#### Равно
|
||
TRUE если $a равно $b после преобразования типов.
|
||
|
||
$a == $b
|
||
|
||
#### Тождественно равно
|
||
TRUE если $a равно $b и имеет тот же тип.
|
||
|
||
$a === $b
|
||
|
||
#### Не равно
|
||
TRUE если $a не равно $b после преобразования типов.
|
||
|
||
$a != $b
|
||
или
|
||
$a <> $b
|
||
|
||
#### Тождественно не равно
|
||
TRUE если $a не равно $b, или они разных типов.
|
||
|
||
$a !== $b
|
||
|
||
#### Меньше
|
||
TRUE если $a строго меньше $b.
|
||
|
||
$a < $b
|
||
|
||
#### Больше
|
||
TRUE если $a строго больше $b.
|
||
|
||
$a > $b
|
||
|
||
#### Меньше или равно
|
||
TRUE если $a меньше или равно $b.
|
||
|
||
$a <= $b
|
||
|
||
#### Больше или равно
|
||
TRUE если $a больше или равно $b.
|
||
|
||
$a >= $b
|
||
|
||
#### Космический корабль
|
||
Число типа integer меньше, больше или равное нулю, когда $a соответственно меньше, больше или равно $b.
|
||
*Доступно c PHP 7.
|
||
|
||
$a <=> $b
|
||
|
||
### Операторы инкремента и декремента
|
||
|
||
В PHP есть поддержка префиксных и постфиксных операторов инкремента и декремента в стиле языка C.
|
||
|
||
*Операторы инкремента и декремента не влияют на значение boolean.
|
||
Декремент NULL также не даст никакого эффекта, однако инкремент даст значение 1.
|
||
|
||
#### Префиксный инкремент
|
||
Увеличивает $a на единицу, затем возвращает значение $a.
|
||
|
||
++$a
|
||
|
||
#### Постфиксный инкремент
|
||
Возвращает значение $a, затем увеличивает $a на единицу.
|
||
|
||
$a++
|
||
|
||
#### Префиксный декремент
|
||
Уменьшает $a на единицу, затем возвращает значение $a.
|
||
|
||
--$a
|
||
|
||
#### Постфиксный декремент
|
||
Возвращает значение $a, затем уменьшает $a на единицу.
|
||
|
||
$a-- .
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
#### Дополнительная информация:
|
||
[Операторы в PHP](http://php.net/manual/ru/language.operators.php)
|
||
|