php 引用计算 结果意外多1?

<?php

$a = 1;

$b=&$a;

echo (++$a) + (++$a) + (++$a)."\n"; //10
echo $b."\n"; //4
echo $a."\n"; //4

?>

完全不知道为什么,谢谢各位解答

阅读 3.4k
3 个回答

第一个(++$a)后,变量$a就成了2,
第二个(++$a)后,变量$a就成了3,
第一个(++$a)后,变量$a就成了4,
echo (++$a) + (++$a) + (++$a)."\n"; 就相当于是2+3+4

$b是引用的$a的地址,所以肯定也是4咯~~

这个似乎是php 5.x的bug
php 7运行没有问题
结果是9, 4, 4

php5.5 5.3 6 我都试过了,答案确实是10,4,4

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题