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;
可不可以 告诉我为什么 最后得出来的结果是不一样的?
?> 展开
$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;
可不可以 告诉我为什么 最后得出来的结果是不一样的?
?> 展开
4个回答
展开全部
一、步骤不同
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调入到指定内存位置。
参考资料来源:百度百科-自增自减运算符
追问
那$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的区别,有这么难以理解的吗?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$a++ 是先使用$a的值,再将$a+1,比如$a=1, $b=$a++;;; 则$b=1,$a=2
++$a 是$a+1之后的整个值。。比如$a=1, $b=++$a;;; 则$b=2,$a=2
++$a 是$a+1之后的整个值。。比如$a=1, $b=++$a;;; 则$b=2,$a=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$i++是先赋值再加,++$i是先加再赋值...就是这
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询