Оператор присваивания (=) присваивает значение или выражение переменной; и да, он отличается от оператора сравнения равенства (==). Это одна из самых распространенных ошибок начинающих программистов: использование оператора присваивания, когда требуется оператор сравнения.
Для оператора присваивания требуется следующий синтаксис:
$ переменная = значение (или выражение)
Присваивание берет выражение справа и присваивает его переменной слева.
<?php // Assign a value to a variable $best_php_tutorial_youtuber = "Dino Cajic"; // of course // Assign an expression to a variable $best_expression = 5 + 7; /** Another expression * These two strings are concatenated * and are then assigned to the * variable on the left. */ $another_expression = "Hello " . "there"; ?>
Здесь начинается немного странностей. Вы можете присвоить значение переменной, а затем присвоить эту переменную другой переменной. Вы можете продолжать работать столько раз, сколько захотите, но читабельность кода пострадает.
<?php $x = ($y = 2) + 22; ?>
Давайте посмотрим, как PHP обработает приведенный выше пример оператора присваивания:
- PHP начинает с присвоения значения 2 переменной $ y.
- Формируется новое выражение: $ y + 22.
- Это выражение оценивается. Значение 2 заменяется на $ y и затем прибавляется к 22: 2 + 22 = 24.
- Новое значение 24 присваивается переменной $ x. Переменная $ x теперь содержит значение 24.
Теперь мы можем использовать переменные $ x и $ y.
<?php echo $x; // prints 24 echo $y; // prints 2 ?>
Для удобства чтения я предлагаю вам как можно более явным образом присваивать значения переменным. Следующий код намного легче читать, чем то, что мы делали в предыдущем примере.
<?php $y = 2; $x = $y + 22; ?>