Еще надо помнить про порядок справа налево Код (Text): $a = 1; $b = 2; echo $a + $a += $b; // 6 $a = 1; $b = 2; echo $a += $b + $a; // 4
А еще нужно просто стараться писать нормально, без таких вот шарад и заморочек, и тогда не будет никаких проблем
Это как фигурные скобки в однострочных if`ах. Вроде как не нужны и без них даже смотрится веселее, но стоит накосячить и веселый дебаг на час другой гарантирован ) Лучше лишняя строчка, чем вылавливать такие закидоны.
Хорошо, тогда почему Код (Text): $a = 1; print $a + $a + ++$a ; тоже 4? Вообще, мне ссылку на такие странности в этой теме и дали.
Потому что это тоже выражение. Какая разница, вардамп или принт? Выражение есть выражение. Оно вычисляется.
Это другое выражение, там ко всему, что было раньше прибавлена ещё единица. Код (PHP): $a = 1; //Два операнда print $a + ++$a ; //4 $b = 1; //Три операнда print $b + $b + ++$b ; //4
как это работает объяснил Fell-x27 а тут срабатывает правило ассоциативности. у плюса она левая. значит выражение вычисляется слева-направо. в итоге вычисляться будет, как будто оно такое: Код (PHP): print ($b + $b) + ++$b ; //4
немножко некропостну https://learn.javascript.ru/string#tasks - задача "проверьте на спам" посмотрите решение этой задачи. видимо таким образом приучают писать сокращенный код?