> 백엔드 개발 > PHP 튜토리얼 > 谁能详细的解释一下PHP中 $a=10; $b=$a-- + -- $a; 的执行过程吗?

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

WBOY
풀어 주다: 2016-06-06 20:48:25
원래의
1461명이 탐색했습니다.

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

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿