1、概念
$x++ : 是先执行 $x的值 然后在 +1; 如果是echo $x++,而输出的结果是 $x的值,并不 +1。
++$x : 是先给$x+1 之后,在继续执行 +1 以后的 $x; 如果echo ++$x,而输出的结果是 $x+1 以后的结果。
2、再看回题目
$x = 5;
$y = 6;
$foo = $x++ + $x--;
//++、--在后边是后执行 $x++之后此时$x--的x为6,算法是5+6 $foo=11,之后执行$x-1=5
$bar = ++$y + ++$x;
//++在前先执行,所以x+1=6,y+1=7 $bar是13
$cup = $x-- + $y--;
//--在后边是后执行 算法结果$cup跟上边一样还是13,算法后$x-1 $y-1分别是5,6
$paper = ++$x + $x++;
//同理可知道 $x先加等于6 ,$paper结果为12,算法后x+1 = 7 $y没变化还是6
$water = $y-- + $x--;
//这里--在后好理解 算法结果为6+7 = 13 ;
echo $water + $paper;
//最终的结果是13+12 = 25
个人的理解方便新手理解,有误差请及时指出
<?php $x = 5; $y = 6; $foo = $x++ + $x--; //++、--在后边是后执行 $x++之后此时$x--的x为6,算法是5+6 $foo=11,之后执行$x-1=5 $bar = ++$y + ++$x; //++在前先执行,所以x+1=6,y+1=7 $bar是13 $cup = $x-- + $y--; //--在后边是后执行 算法结果$cup跟上边一样还是13,算法后$x-1 $y-1分别是5,6 $paper = ++$x + $x++; //同理可知道 $x先加等于6 ,$paper结果为12,算法后x+1 = 7 $y没变化还是6 $water = $y-- + $x--; //这里--在后好理解 算法结果为6+7 = 13 ; echo $water + $paper; //最终的结果是13+12 = 25 ?>
点击 "运行实例" 按钮查看在线实例