$a=22;
$b=--$a + $a++; $a和$b是多少 运算出来的是$a=22 $b=42到底是44还是42啊
是不是应为--$a在前面,就需要先计算--$a=21,然后$b就等于42还有一个$a=12;
$b=$a-- - --$a;echo $a;
echo $b;运算出来时$a=10 $b=2按照后置和前置的算法,不是应该先算--$a=11,11-11=0么是不是因为$a--在前面,就需要先代入12,再计算$a=12-1-1
把我弄糊涂了,求高手$a=10;
$b=$a++ + ++$a;echo $a;
echo $b;$b=10+(10+1+1)还是$b=11+11,虽然结果都相同,但是思路不同,求指教,哪个思路正确

解决方案 »

  1.   

    --$a是运算之前先-1,也就是$a=21,$a++是运算之后+1;$b=--$a + $a++; 中$b运算之后$a=22
      

  2.   

    应该是12-10,$a-- =12(先赋值,再减),再--$a = 10, 前面$a-- 为11,然后再--$a,11-1=10;结果应该是2
      

  3.   

    $a=10;
    $b=$a++ + ++$a;$b=10 + 12;
      

  4.   

    $a = 10;
    $b = $a++ + ++$a;运算是自左向右的
    $b = $a++ + ++$a;
    $b = 10 + ++$a;//注意此时 $a 已经是 11 了
    $b = 10 + 12;
      

  5.   

    $a=10;
    $b=$a++ + ++$a;简单方法是:$a++ 是先遇到$a,使用这时候的$a, 然后$a再加1; ++$a 先遇到++ 那么就是$a先+1 然后在使用加1后的$a;$b=($a++)+ (++$a);
    必须的是自左向右。
    第一个先用$a = 10 ,然后+1 $a=11;
    第二个在计算之前你要想明白这时候的$a=11. 先遇到++ 那么先自增$a=12 然后在 前后2个表达式相加 $b=10+12;
    -- 一样的处理
      

  6.   

    $a=12;
    $b=$a-- - --$a;
    $b = 12 - --$a;//此时$a为11,
    $b = 12 - 10; //11 - 1 =10
    $b = 2;
    你可以到查看一个++,--在变量左右的区别,理解这个这些算术运算就好理解了。
      

  7.   

    Tks~~~~~~~原来是从左至右啊···懂了········