这个PHP代码背后的逻辑并不清楚答案19.答案如何才能成为19?逻辑是什么?
$i=5;
$i +=$i++ + ++$i;
echo $i;
答案 0 :(得分:10)
$i=5;
$i +=$i++ + ++$i;
^
Take value of $i as 5 then increment to 6
^
increment value of $i from 6 to 7, and use the 7
^
5 + 7 = 12
^ $i is already 7, because of the increments in the previous operations,
so add the 12 we've just calculated, giving 19
答案 1 :(得分:2)
首先,让我们考虑以下代码:
from more_itertools import unique_justseen as once_in_row
输出是<?php
$e = 0;
$e += ++$e;
echo $e;
,还是2
?
第二行中的一行,等式1
的右侧将增加++$e;
的值,使$e
(暂时)等于1.
当等式的左侧运行时,$e
已经等于$e
,因此1
将添加该值,所以基本上,该行确实显示{{1} }}
1
当我们对前面给出的等式做同样的事情时,
$e = 1 + 1
这里的重要性是发布和预增量。
<?php
$e = 0;
$e = 1 + 1;
echo $e;
递增i并计算为i的新值。$i=5;
$i +=$i++ + ++$i;
echo $i;
计算i的旧值,并递增i。计算++i
后,在右侧,i++
(将为5)和$i += $i++ + ++$i;
(将为7)。
++$i
(变为$i++
)表示$i += 5 + 7
将等于7 + 5 + 7
。
答案 2 :(得分:-1)
$i += $i++ + ++$i ;
$i = $i + ($i+1 + 1+$i);
19 = 7 + (5 + 7);