Heim  >  Artikel  >  Backend-Entwicklung  >  关于 ++跟&一点疑惑

关于 ++跟&一点疑惑

WBOY
WBOYOriginal
2016-06-13 12:09:511000Durchsuche

关于 ++和&一点疑惑

本帖最后由 yinjie_1984 于 2014-11-15 08:22:22 编辑 $a=1;
$b=&$a;
$b=$a++;

//求$a、$b
第二句话的意思是b也指向了a的地址;
第三句话的意思是在使用后a的值加1,所以$b=1;
关键是后面我不了解了$a++,不表示使用后加1,所以现在$a=2;
可是$b的地址和a的地址一样岂不是$b也等于2?还是第三句话后面的$a++根本就是没执行?这道题答案是$a,$b都是1;
比如和这个比较
$a=1;
$b=$a++;
?>
这个不就是$b=1,$a=2
有点晕啊。。。
------解决思路----------------------
$a = 1;<br />$b = $a++;<br />var_dump($a, $b);<br />/*<br />int(2)<br />int(1)<br />*/<br /><br />$a = 1;<br />$b = &$a;<br />$a++;<br />var_dump($a, $b);<br />/*<br />int(2)<br />int(2)<br />*/<br /><br />$a = 1;<br />$b = &$a;<br />$b = $a++;<br />var_dump($a, $b);<br />/*<br />int(1)<br />int(1)<br />*/<br />

对于 $b = $a++;
将 $a 的值 1 取出赋予 $b,但 ++ 的优先级高于 =,所以取值后先不做赋值,而是做 ++,于是 $a 的值为 2(由于 $b 是 $a 的引用,所以此刻 $b 的值也是 2)
然后做赋值操作,$b 的值就等于 1 了
因为 $b 是 $a 的引用,于是 $a 又被改回了 1
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn