簡體   English   中英

PHP方程輸出混亂

[英]PHP equation output confusion

$x = 5; echo "$x"; echo "<br>"; echo $x+++$x++; echo "<br>"; echo $x;

上面代碼的輸出不會是“5,12,5”嗎? PHP 輸出“5,11,7”?

為什么? 我很困惑。

對 $x 的第一次引用是當它的值仍然是 5 時(即在它增加之前),而對 $x 的第二次引用是當它的值是 6 時(即在它再次增加之前),所以操作是 5 + 6 產生 11。在這個操作之后,$x 的值是 7,因為它已經增加了兩次。

所以基本上是

  1. 提供 5 作為加法運算的操作數之一。

  2. 將 x 提供給加法運算(后增量)后遞增 x,使其為 6。

  3. 提供這個先前增加的 x 作為加法運算的第二個操作數,即 6。所以它使它成為 5+6,產生 11

  4. 最后在加法運算后增加 x 使其為 7

查看評論中的注釋

$x = 5; 
echo $x . PHP_EOL;
// now x=5

echo ++$x + $x . PHP_EOL;
// left side of the operation makes x=6 then the right side adds x to it, meaning 6+6

echo ++$x . PHP_EOL;
// now x=7

還要檢查這個PHP 中 ++$i 和 $i++ 之間的區別是什么?
了解有關前后增量的一些想法。

$x ++ 表示 x 的當前值為 5,緊接着 x 將為 6。

對於第二個 x,x = 6,然后緊接着,x = 7。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM