我们如何确定PHP中的增量和减量

时间:2012-02-10 15:58:00

标签: php increment

请向我提供此脚本的正确解决方案及解释:

 $a = 5;
 $c = $a-- + $a-- + --$a - --$a;
 echo $c;

$c = 10的价值是什么;为什么呢?

4 个答案:

答案 0 :(得分:4)

从阅读上面的脚本和以下内容到断言

$var++, $var--  //Use value then apply incremnet, decrement
++$var, --$var  // Increment, decrement then use vakue

您可以重写表达式以便于理解。

$a = 5;
$c = $a--;   // $c = 5, $a = 4
$c += $a--;  //$c = 9, $a = 3
$c += --$a   // $c = 11, $a = 2 ($a drops to two before use)
$c -= --$a   //$c = 10  $a = 1 ($a drops to one before use);

答案 1 :(得分:2)

++--产生相同的最终结果 - 递增或递减变量 - 无论是否在变量名之后应用,当它用作较大语句的一部分时会产生差异。< / p>

考虑一下:

$a = 5;
$a--;
echo $a; // 4

$a = 5;
--$a;
echo $a; // 4

所以你看,他们产生了相同的最终结果 - $a减1。我确信这就是你所期待的。

然而:

$a = 5;
echo $a--; // 5
echo $a; // 4

$a = 5;
echo --$a; // 4
echo $a; // 4

在此示例中,$a在操作后仍然递减,但递减发生的顺序和使用的值是不同的。对于$a--,值减量之前使用,对于--$a,该值在之后使用。

因此,对于您的示例代码:

$a = 5;    //  Operations in order of occurence:
$c = $a--  //  $c = 5;          $a = 5 - 1  == 4;
   + $a--  //  $c = 5 + 4 == 9; $a = 4 - 1  == 3;
   + --$a  //  $a = 3 - 1 == 2; $c = 9 + 2  == 11;
   - --$a; //  $a = 2 - 1 == 1; $c = 11 - 1 == 10; 
echo $c;   //  10

答案 2 :(得分:1)

$a = 5 ; // $a = 5
$c = $a-- // $c = 5 $a = 4
+
$a-- // $c = 9 $a = 3
+
--$a // $c = 11 $a = 2
-
--$a // $c = 10 $a = 1
;
echo $c ; // $c = 10

答案 3 :(得分:1)

表达式$a--是后递减,这意味着它首先返回$a然后将$a递减1。表达式--$a是预递减,首先将$a递减1,然后返回$a

考虑到上述情况,这意味着$c = 5 + 4 + 2 - 1 = 10