本来在百度另外一个问题, 百度出来看到这个, 点开一看里面的回答还是错的.无奈已经过去很久了,无法回答.
强迫症犯了, 把我的分析写一下.
首先肯定考虑小括号啊, 也就是 (++$a) 和 ($a--) 还有 ($a++):
(++$a) 因为是前++,所以$a自增1,(++$a)执行为2, $a值为2;
($a--) 看的出来是后--, 所以($a--)执行为2, $a自减1, $a值为1;
($a++) 是后++, 所以($a++)执行为1, $a自加1, $a值为2;
然后再看前面的++$a:
此时$a值已经是2了,所以前++之后, $a值为3, ++$a执行为3;
再把各种值代入表达式中,就变成了这样:
3 + 2 + 2 - 1 = 6;