开发者社区> 问答> 正文

解释一下PHP中 $a=10; $b=$a-- + -- $a; 的执行过程吗?

谁能详细的解释一下PHP中 $a=10; $b=$a-- + -- $a; 的执行过程吗?

我在看高洛峰老师的著作《细说PHP》时,发现

$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

如果如上逻辑,那么再加上

$b = $a-- + --$a;
echo $a;       //$a = 8;
echo $b;       //$b = 18;

有谁能说一下这段代码的详细执行过程吗?

展开
收起
落地花开啦 2016-06-15 18:35:40 2555 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    不管是$a++还是++$a,你只要明白是从左往右读代码就好了。

    $a++的意思是先将$a的值取出,然后对其自行自加1,所以$b = $a++;的话输出的结果应该是

    $a=11;$b=10;

    ++$a的意思则是先对$a进行自加1,然后再将$a值取出,所以$b = ++$a;的话输出的结果应该是

    $a = 11;$b=11;

    如果你能理解上面两段话的话,按照这个思路理解你的算段就不是问题了。我就距离说一下你最后一个吧:

    $b = $a-- + --$a;

    这个为了方便理解应该可以拆分成

    $c = $a--;
    $d = --$a;
    $b = $c + $d;

    按照上面的解释,$a--这里返回的就是$a值,然后$a自减1,此时$a=9;$c=10;。--$a这里是$a自减1然后返回$a值,所以此时$a=8;$d=8;。最后得到的结果自然是$a=8;$b=18;

    2019-07-17 19:40:01
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载