Вы находитесь на странице: 1из 3

Лекции курса PHP7 + MySQL с нуля

(краткое содержание)

ЛЕКЦИЯ 11 ОПЕРАЦИИ В PHP

В PHP предусмотрен богатый выбор различных операций для составления


выражений:
- арифметические операции;
- строковые операции;
- операции присваивания;
- операции инкремента и декремента;
- операции сравнения;
- логические операции;
- операции отключения предупреждений;
- условные операции.
Здесь намерено не рассмотрены побитовые операции, которые
предназначены для работы групп битов в целой переменной. Дело в том, что это
очень специфические процедуры, которые сложны при первом восприятии. Они
будут рассмотрены в отдельном бесплатном дополнительном курсе.
Теперь рассмотрим более подробно вышеперечисленные операции:

Арифметические операции
Таких операций всего 6:
- a + b – сложение;
- a – b – вычитание;
- a * b – умножение;
- a / b – деление;
- a % b – остаток от деления a на b;
- a ** b – возведение a в степень b.
Для этих операторов есть некоторые примечания:
- для оператора / возвращаемым значением будет целое число, если оба
параметра выражения a и b – целого типа или строки, выглядящие, как целые
числа, в противном случае результат будет вещественного типа;
- операция вычисления остатка от деления % работает только с целыми
числами и применение этого оператора к дробным числам может привести к
непредсказуемому результату;
- оператор возведения в степень позволяет использовать и дробные числа.

Строковые операции
К таким операциям относят:
- a.b – конкатенация (слияние) строк;
- a[b] – символ строки в позиции n.
Для других операций со строками предназначены не операторы, а
стандартные функции, которые будут рассмотрены в настоящем курсе далее.

Операции присваивания
Помимо стандартного оператора = в PHP используются дополненные
операторы, такие как: +=, -=, *=, /= и многие другие, взятые из языка C:
$var = 10;
$num = 23;
$var += 100; // 110
$num *= 2; // 46

1
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

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


Для операций $var += 1 и $var -= 1 по причине очень частого их использования
ввели специальные операторы инкремента и декремента.
Теперь данным операциям эквивалентны следующие:
- $var++ - увеличение на 1;
- $var-- - уменьшение на 1;
- ++$var – аналогичен $var++ за исключением того, что увеличение переменной
происходит до того, как она будет использована в выражении;
- --$var – аналогичен $var--, но с учетом специфики использования ++$var.
Рассмотрим эти варианты подробнее в листинге 16.1:
Листинг 11.1. Примеры инкремента и декремента переменных.

$a = 10;
$b = 6;
$c = 12;
$d = 7;
echo $a++."<br>"; // Выполнит вывод переменной $a в значении 10, а затем
произведет процедуру инкремента и переменная $a примет значение 11.
echo $b--."<br>"; // Выполнит вывод 6, затем переменной $b присвоится значение 5.
echo ++$c."<br>"; // Присвоит переменной $c значение 13 и выведет на экран
echo --$d."<br>"; // Присвоит переменной $d значение 6 и выведет на экран.

Особенности операций сравнения


Как было рассмотрено ранее, операции сравнения имеют свои особенности.
Так, в случае “” == 0 мы получим true, а при “” === 0 получим false.
Но, в случае “String” == 0 мы также получим true, т. к. оператор == сравнивает
строки по абсолютным значениям, что приводит строку “String” к целочисленному
или вещественному типу, а в таком случае эта строка действительно содержит 0 в
понимании интерпретатора PHP.
То же самое произойдет, если сравнить два массива:
$a1 = array(1, 2, “3”);
$a2 = array(1, true, 3);
echo $a1 == $a2 вернет true, так как 2 соотносится, как true (вспоминаем урок
№9), а «3» приводится к целочисленному значению 3.
Таким образом можно сделать вывод, что при использовании операции ==
происходит следующее:
- наиболее приоритетным типом сравнения является логический тип;
- за логическим типом следует числовой;
- за ним следует сравнение по типу;
- в самом конце сравниваются абсолютные значения в прочих типах.
Соответственно, если перед Вами появляется задача получить результат
полного сравнения двух переменных, Вам следует воспользоваться оператором
===. Только в этом случае Вы получите:
echo “” === 0; // false;
echo “String” === 0; // false;
echo $a1 === $a2; // false.

2
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

Особенности логических операций


В случае применения логических операций && (and) и || (or) («И» и «ИЛИ»)
тоже существует существенный нюанс – выполнение таких операций производится
слева направо и, в случае, если при выполнении такой операции результат
становится очевиден, то процесс прерывается и возвращает полученный
результат:
- в случае оператора &&:
$var1 = 15;
$var2 = 0;
$var3 = “New word”;
echo ($var2 && $var3 && $var1) всегда будет возвращать false, т. к. 0 эквивалентен
значению false.
- в случае оператора ||:
$a = 26;
$b = false;
$c = “true”;
echo ($a || $b || $c) всегда вернет true, т. к. первый оператор возвращает
значение true (26 не равно 0 и не эквивалентно false).