++$i和$i++的区别

区别:

$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++.