Операторы в PHP8
В PHP8 числа в выражениях называются Операндами, а сами знаки Операторы.
Что такое оператор присваивания?
Оператор присваивания обозначается знаком = и позволяет указать для переменной новое значение. Например:
<?php
$cena = 5; // переменной $cena присвоили значение 5
?>
Логические операторы
Пример | Название | Результат | |
---|---|---|---|
$a and $b | его аналог && | И | true , если и $a, и $b true . |
$a or $b | его аналог || | Или | true , если или $a, или $b true . |
$a xor $b | его аналог ^ | Исключающее или | true , если $a, или $b true , но не оба. |
! $a | Отрицание | true , если $a не true . |
Операторы сравнения
Пример | Название | Результат |
---|---|---|
$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 | Меньше | true если $a строго меньше $b. |
$a > $b | Больше | true если $a строго больше $b. |
$a <= $b | Меньше или равно | true если $a меньше или равно $b. |
$a >= $b | Больше или равно | true если $a больше или равно $b. |
$a <=> $b | Космический корабль (spaceship) | Число типа int меньше, больше или равное нулю, когда $a соответственно меньше, больше или равно $b. |
Строковые операторы.
Строковые операторы позволяют работать с текстом.
- Оператор конкатенации [.] соединяет в строку левый и правый аргументы.
- Оператор присваивания с конкатенацией [.=] соединяет в строку правый аргумент к левому.
Оператор проверки типа - [ instanceof ]
Определяет, является ли текущий объект экземпляром указанного класса. Подробнее об операторе instanceof - тут
Операторы инкремента и декремента
Изменяют заданное число на единицу и возвращают полученное значение. Они чаще всего используются для подсчета итераций в цикле. Оператор инкремента увеличивает значение на единицу, а оператор декремента уменьшает значение на единицу. Каждый из этих операторов могут указываться как до, так и после переменной, содержащей изменяемое число, — эффект будет разным!
- При указании оператора перед переменной (префикс) значение изменяется на единицу, а затем возвращается измененное значение.
- При указании оператора после переменной (постфикс) сначала возвращается текущее значение, а потом оно изменяется на единицу.
Пример | Название | Действие |
---|---|---|
++$a | Префиксный инкремент | Увеличивает $a на единицу, затем возвращает значение $a. |
$a++ | Постфиксный инкремент | Возвращает значение $a, затем увеличивает $a на единицу. |
--$a | Префиксный декремент | Уменьшает $a на единицу, затем возвращает значение $a. |
$a-- | Постфиксный декремент | Возвращает значение $a, затем уменьшает $a на единицу. |
Математические операции в PHP8
Пример | Эквивалент | Операция |
---|---|---|
$a += $b | $a = $a + $b | Сложение |
$a -= $b | $a = $a - $b | Вычитание |
$a *= $b | $a = $a * $b | Умножение |
$a /= $b | $a = $a / $b | Деление |
$a %= $b | $a = $a % $b | Модуль |
$a **= $b | $a = $a ** $b | Возведение в степень |
Сокращения арифмитических выражений в PHP8:
- a += b; тоже что и a = (a + b);
- a -= b; тоже что и a = (a - b);
- a *= b; тоже что и a = (a * b);
- a /= b; тоже что и a = (a / b);
Функции для работы с числами:
- round($a) округляет число $a до ближайшего целого числа
- number_format($a) форматирует число $a с разделение групп запятыми
- intdv(10,3) выполняет целочисленное деление на 2 операнда и возвращает целое число. например intdv(10,3) возвращает число - 3
Операторы, работающие с массивами
Пример Название Результат $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.
Оператор + возвращает левый массив, к которому был присоединён правый массив. Для ключей, которые существуют в обоих массивах, будут использованы значения из левого массива, а соответствующие им элементы из правого массива будут проигнорированы.
Побитовые операторы.
Байт содержит восемь битов, каждый из которых содержит 1 или 0 для хранения двоичного значения и представления десятичного числа в диапазоне от 0 до 255. Бит определяет десятичный разряд только в том случае, когда этот бит содержит 1. Разряды обозначаются справа налево от «младшего двоичного разряда» (LSB, Least Significant Bit) до «старшего двоичного разряда» (MSB, Most Significant Bit). Двоичное число в таблице разрядов ниже представляет собой десятичное число 50.
Можно управлять отдельными частями байта, используя побитовые операторы. Они позволяют вычислять и управлять отдельными битами в целом числе.
Пример | Название | Результат |
---|---|---|
$a & $b |
И |
Возвращает 1 в каждом бите, если оба из двух сравниваемых битов равны 1. Пример: 1010 && 1100 = 1000 |
$a | $b |
Или |
Возвращает 1 в каждом бите, если любой из двух сравниваемых битов равен 1. Пример: 1010 | 10101 = 1111 |
$a ^ $b |
Исключающее или |
Возвращает 1 в каждом бите, если только один из двух сравниваемых битов равен 1. Пример: 1010 ^ 0100 = 1110 |
~ $a |
Отрицание |
Возвращает 1 в каждом бите, если ни один из двух сравниваемых битов не равен 1. Пример: 1010 ~ 0011 = 0100 |
$a << $b |
Сдвиг влево |
Перемещает каждый бит, равный 1, на заданное число битов влево. Пример: 0010 << 2 = 1000 |
$a >> $b |
Сдвиг вправо |
Перемещает каждый бит, равный 1, на заданное число битов вправо. Пример: 1000 >> 2 = 0010 |
Каждая из двух половин байта называется «нибблом» или полубайтом (4 бита). Двоичные числа в примерах, приведенных в таблице, представляют собой значения, хранящиеся в ниббле.
Операторы побитового присваивания
Пример | Эквивалент | Операция |
---|---|---|
$a &= $b | $a = $a & $b | Побитовое И |
$a |= $b | $a = $a | $b | Побитовое ИЛИ |
$a ^= $b | $a = $a ^ $b | Побитовое исключающее ИЛИ (Xor) |
$a <<= $b | $a = $a << $b | Побитовый сдвиг влево |
$a >>= $b | $a = $a >> $b | Побитовый сдвиг вправо |
Другие операторы присваивания
Пример | Эквивалент | Операция |
---|---|---|
$a .= $b | $a = $a . $b | Конкатенация строк |
$a ??= $b | $a = $a ?? $b | Объединение с Null |
Оператор управления ошибками [@]
Оператор управления ошибками обозначается знаком @ и позволяет игнорировать вывод ошибок для используемых функций.
<?php
if (@copy('/uploads/images/bg.png’)) {
// файл скопирован
}else {
// файл не скопирован
}
?>
Оператор исполнени [``]
позволяет выполнить строку, заключенную в кавычки `` и возвращает полученный вывод. Например:
<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>