$a=10; $b=$a++; //b=10 a=11$c=$b++ + ++$b; //b=10+11 b=11+11
$d=$c--; //d=22 c=21;
//$e=$d-- - --$d;
echo $d-- - --$d; //22 - 21运行后是2,我分析是1,求大侠分析。3QQ
$d=$c--; //d=22 c=21;
//$e=$d-- - --$d;
echo $d-- - --$d; //22 - 21运行后是2,我分析是1,求大侠分析。3QQ
<=>
$tempB = $b++; $tempC = ++$b; $c=$tempB + $tempC; //tempB = 10; $tempC=12; $c=10+12 = 22
$d=$c--; //d=22 c=21;
echo $d-- - --$d;
<=> $tempD = $d--; $tempE = --$d; $result = $tempE-$tempD //$tempD=22; $tempE=20;
//关键是要明白,在执行中间的“+”时,前面的“$b++”就执行了,就加了“1”了。
$d=$c--; //d=22 c=21;
//$e=$d-- - --$d;
echo $d-- - --$d; //22 - 20
//$d-- 是22,这个你肯定能理解,当执行到“-”时,前面的$d--紧接着执行,而--$d是先减一,再执行运算,所以就有了 22-20 =2 这个结果了。
前面的代码都不用看 光看最后一行就行了
echo $d-- - --$d;
设d=0
0 - --(-1)
0 - -2
echo 2;
//表达式自左向右进行,$b++参与时值为10,过后$b的值已经变为11(先参与后自增),遇到++$b时$b立刻自增(在上次的基础上11+1=12)变为12,因为$c变为22。
$d=$c--; //d=22 c=21;
//$e=$d-- - --$d;
echo $d-- - --$d; //22 - 20
//$d-- 参与时是22,参与过后$d的值已经变为21,遇到--$d立刻自减变为20(在原来的基础上21-1=20),因为结果为 22-20 =2 。希望能帮到你