Возьмите этот пример:
<?php
$i = 1;
$i += 2;
$i =+ 5;
echo $i; // 5
Это показывает, что =+
является оператором присваивания Тем не менее, это очень смущает меня и вовсе не семантическое. Я часами отлаживал что-то просто потому, что случайно использовал =+
вместо +=
, Первый не бросает ошибки, хотя. Так что мне любопытно: каков вариант использования для =+
, Когда бы вы когда-либо (нужно) использовать его над простым =
?
=+
не один оператор. Его два: назначение (=
) и унарный плюс (+
).
Если вы вставите другой пробел, это станет очевидным:
$i = +5;
Унарный плюс в PHP используется для конвертации $i
в int
или же float
по мере необходимости. поскольку 5
уже является INT, его идентичность в этом случае и все выражение семантически эквивалентно:
$i = 5;
=+
не оператор. Думайте об этом как
$i = +5;
в отличие от
$i = -5;
Как вы упомянули +знак равно оператор присваивания является правильным
В твоем случае:
$i = 1;
Просто присвойте значение 1 $i
а затем, когда ваша вторая строка выполняется $i += 2;
, просто добавьте значение 2 с существующим значением $i
,
Так что теперь, когда вы используете $i =+ 5;
в вашей третьей строке, его переназначить переменная $i
с положительным значением +5.
Там нет ничего сложного с = + а также +знак равно это разные.