PHP ++$I和$i++ 10

<?php$i=2;switch($i++){case2:echo'输出2<br/>';echo$i;break;case3:echo'输出3<br/>'.$i;brea... <?php
$i=2;
switch($i++){

case 2:
echo '输出2<br/>';
echo $i;
break;

case 3:
echo '输出3<br/>'.$i;
break;

case 1:
echo "输出1<br/>";
break;

default:
break;
}
echo $i;
?>

输出结果:
输出2
3
我想问首先不是将2赋值给$i吗,这时$i应该为2呀,完了对应case 2,显示“输出2”,可此时$为何却变成了3?

另外FOR循环中$i++和++$i不是没区别嘛,部分先加和后加,为何SWITCH语句里分,而且像上面那短代码,$i++,先赋值2判断,而后输出却变成3,谁能给我解释下?
展开
 我来答
douyl_2010
2014-03-25 · TA获得超过284个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:103万
展开全部
$i++可以变成$j = $i + 1

刚开始的时候$i为2,进行加加运算$i实际已变成3了。可以再把左边那个$i换成别的变量,比如$j
变成这样就好理解了,$j = $i++; ++在后,也就是先赋值再相加,$j为2,$i变为3。符合第一个条件,那case 2 其实就是针对那个$j来说了。
浅文
2014-03-25 · TA获得超过194个赞
知道答主
回答量:92
采纳率:0%
帮助的人:44.1万
展开全部
for语句块中是这样的(语法结构如此)
{
你的代码
最后会执行 $i++ 或 ++$i;

}
$i++ 先返回 $i的值,然后才进行+1操作
++$i 先进行+1操作,然后进行返回
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
踩凰兑佑寿换1a
2014-03-25 · TA获得超过1018个赞
知道小有建树答主
回答量:508
采纳率:100%
帮助的人:573万
展开全部
++$i和$i++应该是没有区别的。
这里你要理解的是,程序执行的先后顺序。
swith($i++) 首先执行的是 ++这个操作, 然后括号里的值就变为了(3) 。
这只是一个很简单的情况,还有更多复杂的嵌套,一般都是从内往外从左往右解析函数语法什么的
追问
如果这样最后结果不应该是跳到CASE 3上去执行吗?但实际却是执行CASE 2,即先将2赋值给switch,跳到CASE 2,然后自加,echo出“输出2” 以及“3”
这里为何会区分先加和后加的问题,而在FOR循环里单独$i++和++$i却没有区别。
望赐教,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d7e10266d1
推荐于2017-05-16 · TA获得超过5480个赞
知道小有建树答主
回答量:713
采纳率:0%
帮助的人:717万
展开全部
$i++和++$i在发生赋值时是有区别的,但是无论哪种形式都不影响自身值得自增。
例子中执行$i++后$i的值已经变化为3了。
举个例子:
$i=1;
$y=$i++; //这里的运算顺序是$y=$i;$i=$i+1
注意,此时$y的值是1,但是$i的值是自增1次后是2了。

同样:
$i=1;
$y=++$i; //这里的运算顺序是 $i=$i+1;$y=$i;
结果$y=2,$i=2
这两个例子反映了他们赋值的顺序,也说明无论使用哪种形式,都不影响变量$i自增。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ab7100
2014-03-25 · TA获得超过3478个赞
知道答主
回答量:203
采纳率:0%
帮助的人:89.1万
展开全部
一个先输出在++;一个先++再输出;所以会2 3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式