$i = 1;
$sum = $i + ($i++);
或者
$i = 1;
$sum = $i + $i + ($i++);
最终会得到结果$sum = 3
,谁能告诉我为什么?
这是php中的测试代码。你可以自己执行或者直接点击这个链接:Demo查看执行结果。为什么最后会得到这个结果?
我想在这里提一下,我很清楚 $i++ 和 ++$i 是做什么的。而我问的这个问题有点不同。请看一下“结果列表”。
$sum = $i + ($i++); //$sum = 3;
和
$sum = $i + $i + ($i++); //$sum = 3;
得到了同样的结果!!
我知道代码应该这样写。我是从朋友那里得到的,无法解释原因,所以在这里要求一个清楚的解释。
// Result list
// $i = 1; //Result
// $sum = $i + ($i++); //3 2 (Look at this)
// $sum = $i + $i + ($i++); //3 2 (And this)
// $sum = $i + $i + $i + ($i++); //4 2
// $sum = $i + $i + $i + $i + ($i++); //5 2
// Test
$i = 1;
$sum = $i + ($i++);
echo "Result: ", $sum, " ", $i, "<br />";
$i = 1;
$sum = $i + $i + ($i++);
echo "Result: ", $sum, " ", $i, "<br />";
highlight_file(__FILE__);