作者bibo9901 (Leo)
看板PHP
标题Re: [请益] 请教i++问题
时间Wed Jun 1 16:04:50 2011
※ 引述《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)
1F:推 stator:谢谢bibo大大~ 06/01 21:59
※ 编辑: bibo9901 来自: 122.116.153.109 (06/01 22:40)
2F:→ gname:for ($i=0;$i<$x;$i++) 这就很好理解了~ 06/01 23:30
3F:→ scarsnight:就楼上的这个for,最後的$i++与++$i,效果是一样的 06/22 00:22