n = n= n=i++ + ++i$ + ++i$ + ++i$ +$i+ + echo $n问题:
$i++ 先引用后增加
$++i 先自增后引用
题:
<?php
$i=1;
$n=$i++ + ++$i + ++$i + ++$i + $i++;
echo $n;
?>
解题思路:
i + + 先 在 表 达 式 中 引 用 在 往 后 增 加 , 所 以 + + i i++先在表达式中引用在 往后增加,所以 ++i i++先在表达式中引用在往后增加,所以++i 先增加 在带入到运算
graph TD
第一个i++
$i=1 -->|赋值给 第一个i++|此时$i=1
此时$i=1-->|传递给++i$| 此时$i=3
此时$i=3 --> |传递给第二个 ++i| 此时$i=4
此时$i=4 -->|传递给第三个 ++i$|此时$i=5
此时$i=5 -->|传递给最后一个 $i++|此时$i也=5
解析
<?php
++i$接收到到 $i++的加一运算, i=1 +1(接收的加一运算)+1(本身自增加的一),
而第二个 ++i 的 i 已经等于 3 ,完成本身自增往后传递i值即可 , 因此等于4,
第三个,相同的等于 i=5,
最后的一个i++,引用了i=5, 而后面已无运行程序,所以只引用无自增了, i = 5
/*加的那个一会往后带入到运算时,如果是i++结尾则不用加一*/
最后 $n=1+3+4+5+5=18;
?>
i++//自动加一但是要执行完当前代码后到下次调用该变量才赋值给ggg;
++i//自动加一并直接赋值给ggg