黑马程序员技术交流社区

标题: 关于$i=$i++ [打印本页]

作者: 为热爱挥汗    时间: 2017-11-24 09:05
标题: 关于$i=$i++
大家对于 ++$i 的理解基本是正确的,但是对 $i++ 的理解却有些偏差,尤其是当他作为一个表达式给别人赋值的时候。举例说明一下:

$i=0;
$j=$i++;
echo $j;
echo $i;
此时结果是$j为0,$i为1;到这里大家都没有问题。
但是,遇到下面的语句就犯了糊涂:
$i=0;
$i=$i++;
echo $i;
此时大部分的人都认为是1;但是结果却是0.  为什么呢?真实的$i=$i++的执行过程如下:
首先是$i++:
$temp=$i;
$i=$i+1;//此时$i变成了 1;
这两步完成以后,才是赋值操作:
$i = $temp;//赋值的时候,他是将事先保存到临时变量中的值再拿出来赋给别的变量,而这个变量现在恰好是他自己,而在赋值之前,$i 已经变成了 1,赋值之后,$i 又变成 0 ;
此时执行echo,输出结果自然就是 0 ;
其实js中,也是这个结果。



   






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2