ホームページ >バックエンド開発 >PHPチュートリアル >谁能详细的解释一下PHP中 $a=10; $b=$a-- + -- $a; 的执行过程吗?
谁能详细的解释一下PHP中 $a=10; $b=$a-- + -- $a; 的执行过程吗?
我在看高洛峰老师的著作《细说PHP》时,发现
<code>$a = 10; $b = $a++ + ++$a; //书上写的执行过程是$a先自增1后再自增1,再赋给$b echo $a; //$a = 12; echo $b; //$b = 22; $b = $a-- - --$a; //$a先自增1后再自增1,再赋给$b echo $a; //$a = 10 echo $b; //$b = 2 </code>
如果如上逻辑,那么再加上
<code>$b = $a-- + --$a; echo $a; //$a = 8; echo $b; //$b = 18; </code>
有谁能说一下这段代码的详细执行过程吗?
谁能详细的解释一下PHP中 $a=10; $b=$a-- + -- $a; 的执行过程吗?
我在看高洛峰老师的著作《细说PHP》时,发现
<code>$a = 10; $b = $a++ + ++$a; //书上写的执行过程是$a先自增1后再自增1,再赋给$b echo $a; //$a = 12; echo $b; //$b = 22; $b = $a-- - --$a; //$a先自增1后再自增1,再赋给$b echo $a; //$a = 10 echo $b; //$b = 2 </code>
如果如上逻辑,那么再加上
<code>$b = $a-- + --$a; echo $a; //$a = 8; echo $b; //$b = 18; </code>
有谁能说一下这段代码的详细执行过程吗?
汗,三段代码都是一样的,有必要放那么多么?不管是$a++
还是++$a
,你只要明白是从左往右读代码就好了。
$a++
的意思是先将$a
的值取出,然后对其自行自加1,所以$b = $a++;
的话输出的结果应该是$a=11;$b=10;
++$a
的意思则是先对$a
进行自加1,然后再将$a
值取出,所以$b = ++$a;
的话输出的结果应该是$a = 11;$b=11;
如果你能理解上面两段话的话,按照这个思路理解你的算段就不是问题了。我就距离说一下你最后一个吧:
<code>$b = $a-- + --$a; </code>
这个为了方便理解应该可以拆分成
<code>$c = $a--; $d = --$a; $b = $c + $d; </code>
按照上面的解释,$a--
这里返回的就是$a
值,然后$a
自减1,此时$a=9;$c=10;
。--$a
这里是$a
自减1然后返回$a
值,所以此时$a=8;$d=8;
。最后得到的结果自然是$a=8;$b=18;
。