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

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

WBOY
Release: 2016-06-06 20:48:25
Original
1461 people have browsed it

谁能详细的解释一下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>
Copy after login
Copy after login

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

<code>$b = $a-- + --$a;
echo $a;       //$a = 8;
echo $b;       //$b = 18;
</code>
Copy after login
Copy after login

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

回复内容:

谁能详细的解释一下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>
Copy after login
Copy after login

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

<code>$b = $a-- + --$a;
echo $a;       //$a = 8;
echo $b;       //$b = 18;
</code>
Copy after login
Copy after login

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

汗,三段代码都是一样的,有必要放那么多么?不管是$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>
Copy after login

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

<code>$c = $a--;
$d = --$a;
$b = $c + $d;
</code>
Copy after login

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

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template