PHP Операторы
В этой главе мы обсудим применение различных операторов в PHP.
В PHP оператор присваивания=используется для присваивания значений переменным.
В PHP арифметические операторы+используются для сложения значений.
Арифметические операторы в PHP
| Operator | Name | Описание | Пример | Результат |
|---|---|---|---|---|
| x + y | добавьте | Сумма x и y | 2 + 2 | 4 |
| x - y | вычитание | Разность x и y | 5 - 2 | 3 |
| x * y | multiply | Произведение x и y | 5 * 2 | 10 |
| x / y | divide | Частное x и y | 15 / 5 | 3 |
| x % y | Модуль (остаток от деления) | Остаток от деления x на y | 5 % 2 10 % 8 10 % 2 |
1 2 0 |
| -x | Сделать отрицательным | Взять противоположное по знаку значение x | <?php $x = 2; echo -$x; ?> |
-2 |
| ~x | Побитовое НЕ | Инвертировать x, выполняя побитовую операцию НЕ над его двоичными битами. Правила таковы: ~1=-2; ~0=-1; |
<?php $x = 2; echo ~$x; ?> |
-3 |
| a . b | Конкатенация | Объединяет две строки | "Hi" . "Ha" | HiHa |
Следующие примеры демонстрируют различные результаты, полученные при использовании разных арифметических операторов:
Пример
Попробуйте сами »
В версии PHP7+ добавлен оператор целочисленного деленияintdiv(), эта функция возвращает значение первого параметра, делённое на второй параметр, и округляет его вниз (floor). Пример:
Пример
Приведённый выше пример выведет:
int(3)
Операторы присваивания в PHP
В PHP основной оператор присваивания — это=. Это означает, что левому операнду присваивается значение выражения в правой части. То есть,$x = 5значение равно 5.
| Operator | Эквивалентно | Описание |
|---|---|---|
| x = y | x = y | Левому операнду присваивается значение выражения в правой части |
| x += y | x = x + y | добавьте |
| x -= y | x = x - y | вычитание |
| x *= y | x = x * y | multiply |
| x /= y | x = x / y | divide |
| x %= y | x = x % y | Модуль (остаток от деления) |
| a .= b | a = a . b | Объединяет две строки |
Следующие примеры демонстрируют различные результаты, полученные при использовании разных операторов присваивания:
Пример
Попробуйте сами »
Следующие примеры демонстрируют одинаковые результаты, полученные с использованием разных строковых операторов:
Пример
Попробуйте сами »
Операторы инкремента/декремента PHP
| Operator | Name | Описание |
|---|---|---|
| ++ x | Пре-инкремент | Добавляет 1 к x, затем возвращает x |
| x ++ | Пост-инкремент | Возвращает x, затем добавляет 1 к x |
| -- x | Пре-декремент | Вычитает 1 из x, затем возвращает x |
| x -- | Пост-декремент | Возвращает x, затем вычитает 1 из x |
Следующие примеры демонстрируют результаты, полученные с использованием операторов инкремента/декремента:
Пример
Попробуйте сами »
Операторы сравнения PHP
Операторы сравнения позволяют сравнивать два значения:
| Operator | Name | Описание | Пример |
|---|---|---|---|
| x == y | Equal | Возвращает true, если x равно y | 5==8 возвращает false |
| x === y | Идентичны | Возвращает true, если x равен y и они одного типа | 5==="5" возвращает false |
| x != y | Не равно | Возвращает true, если x не равен y | 5!=8 возвращает true |
| x <> y | Не равно | Возвращает true, если x не равен y | 5<>8 возвращает true |
| x !== y | Не идентичны | Возвращает true, если x не равен y или если они не одного типа | 5!=="5" возвращает true |
| x > y | Больше | Возвращает true, если x больше y | 5>8 возвращает false |
| x < y | Меньше | Возвращает true, если x меньше y | 5<8 возвращает true |
| x >= y | Больше или равно | Возвращает true, если x больше или равен y | 5>=8 возвращает false |
| x <= y | Меньше или равно | Возвращает true, если x меньше или равен y | 5<=8 возвращает true |
Следующие примеры демонстрируют различные результаты, полученные с помощью некоторых операторов сравнения:
Пример
Попробуйте сами »
Логические операторы PHP
| Operator | Name | Описание | Пример |
|---|---|---|---|
| x and y | и | Возвращает true, если оба x и y истинны | x=6 y=3 (x < 10 and y > 1) возвращает true |
| x or y | или | Возвращает true, если хотя бы один из x и y равен true | x=6 y=3 (x==6 or y==5) возвращает true |
| x xor y | Xor | Возвращает true, если ровно один из x и y равен true | x=6 y=3 (x==6 xor y==3) возвращает false |
| x && y | и | Возвращает true, если оба x и y истинны | x=6 y=3 (x < 10 && y > 1) возвращает true |
| x || y | или | Возвращает true, если хотя бы один из x и y равен true | x=6 y=3 (x==5 || y==5) возвращает false |
| ! x | not | Возвращает true, если x не равен true | x=6 y=3 !(x==y) возвращает true |
Операторы массивов PHP
| Operator | Name | Описание |
|---|---|---|
| x + y | Объединение | Объединение x и y |
| x == y | Равенство | Возвращает true, если x и y имеют одинаковые пары ключ/значение |
| x === y | Идентичность | Возвращает true, если x и y имеют одинаковые пары ключ/значение, в том же порядке и того же типа |
| x != y | Неравенство | Возвращает true, если x не равен y |
| x <> y | Неравенство | Возвращает true, если x не равен y |
| x !== y | Неидентичность | Возвращает true, если x не равен y |
Следующие примеры демонстрируют различные результаты, полученные при использовании некоторых операторов массивов:
Пример
Попробуйте сами »
Тернарный оператор
Другой условный оператор — это "?:" (или тернарный) оператор.
Формат синтаксиса
(expr1) ? (expr2) : (expr3)
Значение равно expr2, когда expr1 вычисляется как TRUE, и expr3, когда expr1 вычисляется как FALSE.
Начиная с PHP 5.3, среднюю часть тернарного оператора можно опустить. Выражение expr1 ?: expr3 возвращает expr1, если expr1 вычисляется как TRUE, в противном случае возвращает expr3.
Пример
В следующем примере, проверяя, содержит ли запрос $_GET значение user, он возвращает $_GET['user'], если оно присутствует, в противном случае возвращает nobody:
Пример
Примечание:PHP_EOL— это символ новой строки, совместимый с большим числом платформ.
В версиях PHP 7+ есть дополнительный оператор объединения с NULL??, примеры приведены ниже:
Пример
Комбинированный оператор сравнения (PHP7+)
PHP7+ поддерживает комбинированный оператор сравнения, также называемый оператором «космический корабль», с символом:<=>. Комбинированный оператор сравнения позволяет легко сравнивать две переменные и, конечно, не ограничивается сравнением числовых данных.
Формат синтаксиса следующий:
$c = $a <=> $b;
Разбор следующий:
- Если $a > $b, то$cзначение1。
- Если$a == $b, то$cзначение0。
- Если$a < $b, то$cзначение-1。
Примеры приведены ниже:
Пример
Приоритет операторов
В следующей таблице перечислены операторы в порядке убывания приоритета. Операторы в одной строке имеют одинаковый приоритет; в этом случае порядок вычисления определяется их ассоциативностью.
Объяснение: Левая = слева направо, правая = справа налево.
| Ассоциативность | Operator | Дополнительная информация |
|---|---|---|
| Отсутствует | clone new | clone и new |
| По левому краю | [ | array() |
| Вправо | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | Тип и инкремент/декремент |
| Отсутствует | instanceof | Type |
| Вправо | ! | Логические операторы |
| По левому краю | * / % | Арифметические операторы |
| По левому краю | + – . | Арифметические операторы и строковые операторы |
| По левому краю | << >> | Побитовые операторы |
| Отсутствует | == != === !== <> | Операторы сравнения |
| По левому краю | & | Побитовые операторы и ссылки |
| По левому краю | ^ | Побитовые операторы |
| По левому краю | | | Побитовые операторы |
| По левому краю | && | Логические операторы |
| По левому краю | || | Логические операторы |
| По левому краю | ? : | Тернарный оператор |
| Вправо | = += -= *= /= .= %= &= |= ^= <<= >>= => | Операторы присваивания |
| По левому краю | и | Логические операторы |
| По левому краю | xor | Логические операторы |
| По левому краю | или | Логические операторы |
| По левому краю | , | Используется в нескольких местах |
Что касается приоритета операторов, то or и ||, && и and — все логические операторы с одинаковым действием, но их приоритет различается.
Пример
Вывод приведённых выше примеров:
int(3) bool(true)
Использование круглых скобок
Мы используем парные круглые скобки, чтобы явно указать порядок операций, вместо того чтобы полагаться на приоритет и ассоциативность операторов, что обычно повышает читаемость кода.
Пример
Вывод приведённых выше примеров:
7 9Другие расширения