Re: [請益] 請教i++問題
※ 引述《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
06/01 21:59, 1F
※ 編輯: bibo9901 來自: 122.116.153.109 (06/01 22:40)
→
06/01 23:30, , 2F
06/01 23:30, 2F
→
06/22 00:22, , 3F
06/22 00:22, 3F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章