Слияние переменных, которое не имеет смысла - PullRequest
2 голосов
/ 16 июня 2011

Рассмотрим этот код:

$x  = 1.4;
$i1 = 0.5;
$i2 = 0.4;

echo ($i1 + $i2 = $x); // Outputs 1.9

Почему это? Я пытался найти этот тип установки переменных без результатов. Переменная $i2 игнорируется? Зачем использовать это более echo ($x + $i1);? Выводит тот же результат.

Ответы [ 3 ]

5 голосов
/ 16 июня 2011

Дело в том, что он делает две вещи в одном утверждении.

Это сокращение для:

$i2 = $x;
echo ($i1 + $i2);

Назначение происходит внутри строки, сохраняя отдельную строку. Не идеальный стиль, но часто используется в if(), while() и других управляющих операторах.

2 голосов
/ 16 июня 2011

это было бы $ i1 + назначение.

Назначение оценивается в $ x ($i2 = $x )

конечный результат echo 0.5 + 1.4.

Даже php имеет приоритеты операторов http://php.net/manual/en/language.operators.precedence.php.

1 голос
/ 16 июня 2011

= обрабатывается до +, что означает, что так происходит:

echo ($i1 + ($i2 = $x));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...