Оператор присваивания =
Не путать с равно: ==
$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