求助大神,这道题是怎么得出结果的?语句没太看明白

 

具体如下,如有帮助,请采纳一下,谢谢。

$i = 5   //i等于5
if($i++ == 5) Echo "x"; //先执行i==5这个判断,此时i等于5,条件成立,输出"x",然后i++,i等于6
if($i-- == 5) Echo "y"; //先执行i==5这个判断,此时i等于6,条件不成立,不执行输出语句,然后i--,i等于5
else if(--$i == 5) Echo "z";//先执行--i,此时i等于4(5-1=4),然后判断i==5,条件不成立,不执行输出语句
if(++$i ==5) Echo "x";//先执行++i,此时i等于5(4+1=5),然后判断i==5,条件成立,输出"x"
//所以最后输出的结果就是"xx"

 

mark

1、首先,单独拿出来说++i和i++,意思都是一样的,就是i=i+1。
2、如果当做运算符来说,就是a=i++或者a=++i这样的形式。情况就不一样了。
    先说a=i++,这个运算的意思是先把i的值赋予a,然后在执行i=i+1;
    而a=++i,这个的意思是先执行i=i+1,然后在把i的值赋予a;


    举个例子来说,
    如果一开始i=4。那么执行a=i++这条语句之后,a=4,i=5;
    那么执行a=++i这条语句之后,i=5,a=5;
    同理,i--和--i的用法也是一样的。