php运算
2013 年 8 月 31 日
没有评论
第一段程序:
1 2 3 4 | $a=1; $b=&$a; $c =(++$a)+($a++); echo $c; // $c=5; |
第二段程序:
1 2 3 | $a=1; $c=(++$a)+($a++); echo $c; //$c=4; |
两端程序的输出结果有所不同 第一为5;第二个为4;
解析第一段程序的执行顺序
++$a;$a等于2; 同时被$b引用;此时b等于2;
$a++时;$a等于2;被$b引用过后变成了3;此时$b等于3;
(详见php手册递增运算符的解释)
第二段程序也就是没有被引用过所以$a++的表达式 还是为2;故第二段程序输出为4;
以上内容如有不对 请留言说明 谢谢。