关于 ++跟&一点疑惑

WBOY
发布: 2016-06-13 12:09:51
原创
966 人浏览过

关于 ++和&一点疑惑

本帖最后由 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
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!