php遞增運算子問題 |
|
kay
更新時間:2009/4/1 下午 11:13:27 |
|
在挑戰php書中的例子中3-24頁 <?php echo 'a=1<br />'; $a=1; echo '$a++='.$a++.'<br />'; $a=1; echo '++$a='.++$a; ?> 呈現結果是 $a=1 $a++=1 ++$a=1 而在3-23例子中 <?php $a=5;$a++; echo '$a='.$a.; ?> 結果卻是 $a=6 還有 為什麼在3-23例子中 echo '$a='.後面是接$a而不是$a++ 就這樣 謝謝 |
|
|
|
文淵閣工作室
更新時間:2009/4/2 上午 09:59:14 |
|
<?php $a=5;$a++; echo '$a='.$a.; ?> 因為在第一行中,我們先宣告$a的初值為5,接著馬上執行$a++更新$a的值, 最後就再 echo 出$a目前的值,所以$a最後的值為6。 以上的程式碼如果再分行細寫 <?php $a=5; $a++; echo '$a='.$a; ?> 與 <?php $a=5; echo '$a='.$a++; ?> 是相同的。 只是一個在顯示前先計算, 另一個是在顯示時計算結果再輸出。 |
|
|
|
kay
更新時間:2009/4/3 下午 04:57:13 |
|
您說最後結果是一樣? 那為什麼 在挑戰php書中的例子中3-24頁 <?php echo 'a=1<br />'; $a=1; echo '$a++='.$a++. ?> 呈現結果是 $a=1 $a++=1 而不是2呢?
|
|
|
|
文淵閣工作室
更新時間:2009/4/6 上午 10:51:14 |
|
您好,不好意思,這樣的結果的確是不同的。 在這裡先做進一步的修正。 <?php echo 'a=1<br />'; $a=1; $a++; echo '$a++='.$a; ?> 在這裡最後要呈現的 $a 值是事先經過 $a++ 的計算,所以其值已經更新為 2。 而 <?php echo 'a=1<br />'; $a=1; echo '$a++='.$a++; ?> 最後要顯示的 $a++,它的計算步驟是先將原來的 $a 值傳回顯示再進行加 1 的計算,所以顯示的值會 1。 為了映証我們再將程式修改如下: <?php echo 'a=1<br />'; $a=1; echo '$a++='.$a++.'<br />'; echo $a; ?> 最後的 $a 值就為 2 了,也就是第一次 $a++ 時先將 $a 的原值(也就是 1)傳回顯示,再進行計算,所以最後我們再要求顯示 $a 時就為最後計算的結果:2。 |
|
|
|