Почитал немного документации, и появилась мысля по поводу задачи.
В первом выражении:
$x = 1;
$y = $x + $x++;
var_dump($y);
Т.к. приоритет операторов определяется исходя из их ассоциативности, то в первую очередь выполнится инкремент $x++, а потом добавится единица, в этом случае на выходе 3.
Во-втором выражении:
$x = 1;
$y = $x + $x + $x++;
var_dump($y);
Больший приоритет будет иметь, выражение сложения, т.е. сначала выполнится
$x + $x + $x, а потом переменная $x увеличится на 1, т.к. постфиксный инкремент возвращает значение $x, затем увеличивает $x на единицу.
В этом случае на выходе тоже 3.
Значение @ в выражении, в подавлении ассоциативности (порядку их выполнения).
|