编程论坛's Archiver

氢离子 发表于 2007-7-4 14:58

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

&lt;?php <BR>$a = 1; <BR>$c = (++$a)+($a++); <BR>echo $c; //$c=4 <BR>$a = 1; <BR>$b = &amp;$a; //多了这一句 <BR>$c = (++$a)+($a++); <BR>echo $c; //$c=5 <BR>?&gt;  <BR> <BR> <BR>

lmhllr 发表于 2007-7-5 10:50

最近这个问题在PHPCHINA问了不下三次。。。

氢离子 发表于 2007-7-6 16:44

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

zhyaojing 发表于 2007-7-7 12:19

<P>搞不懂<BR>太深奥了<BR>测试不出</P>

發呆的小猪 发表于 2007-7-10 08:35

<P>这里 $b = &amp;$a;是一个PHP引用.//$a =1</P>
<P>在 $c = (++$a)+($a++);中, 当前半部分(++$a)完了之后,此时$a=2,由于引用值被保存在另一个变量中</P>
<P>在后半部分($a++)中,自然在运算这里部分之前$a=2,运算完后 $a =3</P>

氢离子 发表于 2007-7-10 17:38

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

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.