【发布时间】:2013-11-13 13:09:01
【问题描述】:
$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__);
【问题讨论】:
-
感谢随机的一段代码。如果您能解释一下这段代码应该做什么以及确切您需要什么帮助,那就太好了。
-
没有。甚至。事情。如果你写这样的代码,它已经坏了。
-
我只是想知道这个结果的原因。这个结果背后的执行原理。
-
你可以看到这里的代码消失了我的一部分。我正在尝试显示它。你可以看这里:demo.zjmainstay.cn/php/simpleAdd.php