$a=21;
$b=$a++;
$c=++$a;
echo $a;
echo $b;
echo $c;
我理解的结果过是23 ,22,23,
但是输入的结果为什么是23,21,23 求解
这不是PHP的问题,程序语言都这样。$a++
是先做运算再自增的,++$a
是先自增再做运算
$a=21;
$b=$a++; //先return $b=a,再返回$a=$a+1 此时$b=21 $a=22;
$c=++$a; //先$c=$a+1 再return$a=$a+1 此时$c=23, $a=23
$a=21;
$b=$a++; //这时 $a的值已经重新赋值为22了
$c=++$a; //这时 $a的值已经重新赋值为23了
echo $a;
echo $b;
echo $c;
++前置就先自增 后置就后自增
具体拆开等价于下面这个:
$a = 21;
//$b = $a++;
$b = $a;
$a++;
//$c = ++$a;
++$a;
$c = $a;