Heim  >  Artikel  >  Backend-Entwicklung  >  i++的有关问题

i++的有关问题

WBOY
WBOYOriginal
2016-06-13 12:49:22912Durchsuche

i++的问题
int I = 3;
I = I + I++ + ++I;
以上代码在Java/C#/JavaScript中均输出11,但在PHP中却输出12,PHP的计算和替他三种有什么不同?百思不得其解,求指点!


------解决方案--------------------
$i = 3;<br />
$a = $i + $i++ + ++$i;<br />
echo $a; //12<br />
这是 php 的一个 BUG
似乎所有的 php5 都有这个问题(至少我手边的3个版本是这样)
问题出在第一个 $i 传值方式上,如写作
$i = 3;<br />
$a = ($d=$i) + $i++ + ++$i;<br />
echo $a; //11<br />
就正确了
显然第一个 $i 传递的是引用,由于后边的 $i++ 实际参与运算的是 4,而不是 3

把  + ++$i 去掉就更清晰了
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