PHP手册声称:
$a = 1;
echo ++$a + $a++;
这段文本在语法上有些模糊,但对我来说似乎非常清楚。 ++$a 和 $a++ 会首先从左到右进行求值,所以 ++$a 先递增再返回2,$a++ 先返回2再递增。2 + 2 的和是4,所以会输出4。然而,PHP 手册非常明确地表示可能输出4或5。
PHP 规范没有指定操作将从左到右执行吗?即使它不强制要求从左到右执行操作,在这种情况下,它是否仍将返回4?
编辑:我重新阅读了页面,并且它声明是由每个特定的运算符决定的。+ 的优先级最低,从左到右进行评估,所以似乎我的早期假设是正确的。但我仍然不理解。