关于++

yunprince 2013-10-11 04:04:59

$a = 1;
$c = $a + $a++;
echo "c = ".$c."<br/>";

$a = 1;
$i = $a + $a + $a++;
echo "i = ".$i."<br/>";

怎么c和i的值一样...
...全文
245 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
iasky 2013-10-12
  • 打赏
  • 举报
回复
php的官方手册中说明了的,++和+一起使用的时候,如何计算没有定义。
hengyu654 2013-10-12
  • 打赏
  • 举报
回复
引用 2 楼 yunprince 的回复:
引用 1 楼 andyxl 的回复:
第一个,$a++先计算,得到加法的右操作数1,同时$a的值变成2. 之后加法的计算就是2 + 1,得到3;第二个,按从左到右的顺序,$a+$a先算,得到结果2(这个结果应该存入了一个临时变量),然后计算$a++,得到1,(此时$a增加到2已经不影响左操作数了),于是最后一步仍然是2+1
同样的计算,为什么第一个要先算++,第二个不先计算++...
因为没有规则来保证这种运算顺序,所以要避免这种依赖特定运算顺序的写法。
deathoctopus 2013-10-11
  • 打赏
  • 举报
回复
$a = 1;
$b = 1;
$c = $a + $b++;
echo "c = ".$c."<br/>";

$a = 1;
$b = 1;
$i = $a + $a + $b++;
echo "i = ".$i."<br/>";
改了个方式,然后又结果变了。。 我猜想是如果进行了数学运算,++则会不运算吧
yunprince 2013-10-11
  • 打赏
  • 举报
回复
引用 1 楼 andyxl 的回复:
第一个,$a++先计算,得到加法的右操作数1,同时$a的值变成2. 之后加法的计算就是2 + 1,得到3;第二个,按从左到右的顺序,$a+$a先算,得到结果2(这个结果应该存入了一个临时变量),然后计算$a++,得到1,(此时$a增加到2已经不影响左操作数了),于是最后一步仍然是2+1
同样的计算,为什么第一个要先算++,第二个不先计算++...
andyxl 2013-10-11
  • 打赏
  • 举报
回复
引自:http://weibo.com/1170999921/Adv0ntWHm?mod=weibotime 第一个,$a++先计算,得到加法的右操作数1,同时$a的值变成2. 之后加法的计算就是2 + 1,得到3;第二个,按从左到右的顺序,$a+$a先算,得到结果2(这个结果应该存入了一个临时变量),然后计算$a++,得到1,(此时$a增加到2已经不影响左操作数了),于是最后一步仍然是2+1

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧