注册 登录
编程论坛 PHP技术论坛

谁能解释,这两个结果为什么不同?

氢离子 发布于 2007-07-04 14:58, 1450 次点击
<?php
$a = 1;
$c = (++$a)+($a++);
echo $c; //$c=4
$a = 1;
$b = &$a; //多了这一句
$c = (++$a)+($a++);
echo $c; //$c=5
?>


5 回复
#2
lmhllr2007-07-05 10:50
最近这个问题在PHPCHINA问了不下三次。。。
#3
氢离子2007-07-06 16:44

你也知道呀,呵呵,我就是转过来的,因为我找不到有答案的帖子,而那里的人不讨论了.....

#4
zhyaojing2007-07-07 12:19

搞不懂
太深奥了
测试不出

#5
發呆的小猪2007-07-10 08:35

这里 $b = &$a;是一个PHP引用.//$a =1

在 $c = (++$a)+($a++);中, 当前半部分(++$a)完了之后,此时$a=2,由于引用值被保存在另一个变量中

在后半部分($a++)中,自然在运算这里部分之前$a=2,运算完后 $a =3

#6
氢离子2007-07-10 17:38

谢谢了,小猪的意思是下一个步骤的运算与引用值有关,因为引用,所以$a的值因为前一运算而被保存起来了
我的理解对吧

1