JavaScript code:
var a = 1, b = 2;
a = b + (b = a) * 0;
// result a = 2, b = 1;
PHP code 1:
$a = 1;
$b = 2;
$a = $b + ($b = $a) * 0;
// result $a = 1, $b = 1;
PHP code 2:
$a = 1;
$b = 2;
$a = (int)$b + ($b = $a) * 0;
// result $a = 2, $b = 1;
What causes the difference between PHP and JavaScript assignment operators?
Is it operator precedence related?
I want to know what the reasons are. Thanks!