PHP中$a++和++$a的区别

<?php$i=0;while($i++){switch(++$i){case5:echo"quitat<br/>";break;case10:echo"quitat10... <?php
$i=0;
while($i++){
switch(++$i){
case 5:
echo "quit at <br/>";
break;
case 10 :
echo "quit at 10<br/>";
break 2;
default :
break;
}
}
echo '$i='.$i;
?>


<?php

$i=0;
while(++$i){
switch(++$i){
case 5:
echo "quit at <br/>";
break;
case 10 :
echo "quit at 10<br/>";
break 2;
default :
break;
}
}
echo '$i='.$i;

可不可以 告诉我为什么 最后得出来的结果是不一样的?
?>
展开
 我来答
床前明月儿
高能答主

2020-03-24 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171934

向TA提问 私信TA
展开全部

一、步骤不同

1、$a++:会先调用$a,之后执行自增运算。

2、++$a:先进行自增运算,之后调用$a。

二、主体不同

1、$a++:相当于 a = i; i++。

2、++$a:相当于 i++; a = i。


三、内存运行不同

1、$a++:内存中先将$a调入堆栈,之后指针自增1,之后将$a调出。

2、++$a:内存中指针先自增1之后将$a调入到指定内存位置。


参考资料来源:百度百科-自增自减运算符

cmoooo
推荐于2018-03-19 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:660万
展开全部


一张图帮你搞定问题。


在理解的时候要注意,$i++所输出的值,和这条诗句执行过后的$i本身的值是不同的。

追问
那$i++什么时候才加上1呢
追答
是这样的:

while($i++) //在程序执行到这一行的时间,你要注意的是,$i++所输出的,是$i还没有递增之前的值,在图中,也就是0。

担是,这行代码执行完之后的下一行代码,你再获取$i,$i的值就已经递增完成,变成1了!!

那么如果程序改成如下的样子:

$temp = $i++; //我们在这里获取$i++;
while($temp){ //我们在这里获取$tmep;这个$temp的值是0,而里如果改成$i,那么$i的值就是1了。

这个应该不难理解吧?

比如:

$i=0;
$i++;
while($i){ //在这里,$i就是1了,然后就满足运行条件循环while了。

要知道,执行完$i++,$i++输出的值,运行完之后的$i值是不一样的。

另外,$i++与++$i的区别,有这么难以理解的吗?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappkaste4w8nlntv
2013-06-19 · TA获得超过213个赞
知道小有建树答主
回答量:406
采纳率:100%
帮助的人:135万
展开全部
$a++ 是先使用$a的值,再将$a+1,比如$a=1, $b=$a++;;; 则$b=1,$a=2
++$a 是$a+1之后的整个值。。比如$a=1, $b=++$a;;; 则$b=2,$a=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q2369582jhwe
2013-06-19 · TA获得超过364个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:173万
展开全部
$i++是先赋值再加,++$i是先加再赋值...就是这
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式