区别:
$i++先执行当前行,再自加,++$i则先自加,再执行当前行.
这段代码能很直观的解释这个问题:
$i = 1; echo $i++.'<br>’; //先执行echo,所以输出1 $i = 1; echo ++$i.'<br>’; //先自加,再执行echo,所以输出2
性能:
因为$i++是先执行再自加,所以底层会新建一个临时变量进行转存,而++$i则完全没有这个步骤,下面这段代码可以证明这个理论(++$i和$i++各执行十万次):
$start_time = microtime(true); for($i=0;$i<1000000;$i++) continue; echo '$i++耗时:'.(microtime(true) - $start_time).'<br>'; $start_time = microtime(true); for($i=0;$i<1000000;++$i) continue; echo '++$i耗时:'.(microtime(true) - $start_time).'<br>’;
$i++耗时:0.0088188648223877
++$i耗时:0.0034670829772949
可见++$i比$i++快了一倍多,而且在代码的理解上,++$i比$i++更加直观.所以我建议大家多使用++$i而不是$i++.