Re: [請益] 請教i++問題

看板PHP作者 (Leo)時間14年前 (2011/06/01 16:04), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《stator (別急著吃棉花糖)》之銘言: : 因為還是初學者,對於i++有一些疑問,想上來請教各位前輩 : 寫了程式測試 : $i=0; : $i=$i++; : print $i; : if ($i=0) : print 0; : else : print 1; : 結果是印出0、1 : 這邊的$i++是代表說只有做到「印出」的動作後才將i+1嗎? 1) if($i=0) 相當於 $i=0; if($i) 也就是永遠是 false, 當然執行 else{} 的部份, 印出1 要判斷是不是零要用 if($i==0) 或 if($i===0) 2) 有關 $i++ 和 ++$i function of $i++{ $temp=$i; 先把 $i 的值存在 $temp $i=$i+1; $i 原來的值加 1 return $temp; 傳回$temp, 裡面是 $i 原來的值 } function of ++$i{ $i=$i+1; $i 原來的值加1 return $i; 傳回$i } 執行 $i=$i++ 時: 由於 ++= 優先,所以先執行 $i++,即 $i 的值從0變成1,但是傳回0。 接著執行 = 賦值運算,使得 $i=0,如同你看到的結果。 而且,顯而易見地,++$i在「理論上」會比$i++來的快一點,因為少一次複製。 : ===================================================== : 再寫了一個程式測試後 : <?php : $c=0; : $c=$c++; : print $c; : $p=$c; : print $p; : ?> : 這邊確是印出0、0 : 有點不懂為什麼$p會是0呢?冏 : 像這種後置才要加的,要何時才會加1呢? : 以上的笨問題還請各位能教導一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.130.101 ※ 編輯: bibo9901 來自: 114.34.130.101 (06/01 16:06) ※ 編輯: bibo9901 來自: 122.116.153.109 (06/01 21:17)

06/01 21:59, , 1F
謝謝bibo大大~
06/01 21:59, 1F
※ 編輯: bibo9901 來自: 122.116.153.109 (06/01 22:40)

06/01 23:30, , 2F
for ($i=0;$i<$x;$i++) 這就很好理解了~
06/01 23:30, 2F

06/22 00:22, , 3F
就樓上的這個for,最後的$i++與++$i,效果是一樣的
06/22 00:22, 3F
文章代碼(AID): #1DvVAbQi (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
3
8
完整討論串 (本文為第 2 之 2 篇):
3
8
文章代碼(AID): #1DvVAbQi (PHP)