Оператор присваивания =
Не путать с равно: ==
$a = 5; // присвоить тому что слева (переменной $a) значение того, что справа (5)
$a = $a + 1; // прибавим к значению переменной $a
значение 1. Теперь $a равно 6
unset($a); // удалим переменную $a
Арифметические операторы:
+ – * /
и еще есть отрицание:
-$a
Из непонятного: % – деление по модулю:
echo 5%2; // дает 1
Приоритеты в операторах:
echo 2+2*2 // 6
echo (2+2)*2 // 8
Проблема: динамическая типизация
$a = ‘5’; // это не число, а это строка; потому что кавычки
echo $a * 10; // получим 50, т.к. утиная типизация – если что-то плавает как утка, летает как утка, крякаят как утка – значит скорее всего это утра 🙂
$a = ‘abc’;
echo $a * 10; // будет 0; т.е. $a приведется к нулю
$a = ‘5abc’;
echo $a * 10; // будет снова 50; т.к. PHP проверяет все символы переменной $a по очереди в поиске подходящего значения.
$a = ’51ab 2c’;
echo $a * 10; // будет 510; т.к. уперлись в окончание числа; также может искаться точка (для вещественного числа)
Оператор конкатенации (склеивания строк) – обозначается точкой .
$a = “Hello “;
$b = $a . “World!”; // $b теперь содержит строку “Hello World!”
$a = “Hello”; $b = “World!”;
$c = $a . ” ” . $b; // $c теперь содержит строку “Hello World!”
Это равнозначно и строковой записи переменных:
$d = “$a $b”;
Но константы нельзя указывать в двойных кавычках, их придется конкатенировать.
Копирование переменных в PHP
$a = 5;
$b = $a; // создаем _новую_ ячейку в памяти и присваиваем ей значение, равное значению переменной $a
$b = 10; // присваиваем переменной $b новое значение
echo $a; // будет все также оставаться 5
echo $b; // станет 10