Оператор присваивания (=) присваивает значение или выражение переменной; и да, он отличается от оператора сравнения равенства (==). Это одна из самых распространенных ошибок начинающих программистов: использование оператора присваивания, когда требуется оператор сравнения.

Для оператора присваивания требуется следующий синтаксис:

$ переменная = значение (или выражение)

Присваивание берет выражение справа и присваивает его переменной слева.

<?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 обработает приведенный выше пример оператора присваивания:

  1. PHP начинает с присвоения значения 2 переменной $ y.
  2. Формируется новое выражение: $ y + 22.
  3. Это выражение оценивается. Значение 2 заменяется на $ y и затем прибавляется к 22: 2 + 22 = 24.
  4. Новое значение 24 присваивается переменной $ x. Переменная $ x теперь содержит значение 24.

Теперь мы можем использовать переменные $ x и $ y.

<?php
echo $x; // prints 24
echo $y; // prints 2
?>

Для удобства чтения я предлагаю вам как можно более явным образом присваивать значения переменным. Следующий код намного легче читать, чем то, что мы делали в предыдущем примере.

<?php
$y = 2;
$x = $y + 22;
?>