PHP for with increment $i++ vs ++$i (Benchmark)
Vamos a probar como es mas rapido un Bucle for si usamos un post-incremento ($i++) o un pre-incremento (++$i).
Bucle for con Post-incremento:
Primero copia el valor de $i en una variable temporal, luego le aumenta uno y después retorna el valor temporal.
//Forma larga
$y = $y + 1;
$x = $y;
//Forma corta
$i++
Quedando así:
for ($i = 0; $i < 10; $i++){};
Bucle for con Pre-incremento:
Primero aumenta en uno el valor de $i y retorna este valor de la variable.
//Forma larga
$x = $y;
$y = $y + 1;
//Forma corta
++$i
Quedando así:
for ($i = 0; $i < 10; ++$i){};
Haciendo un bucle for de 1 000 000 interacciones:
//PHP 7.4.0
For $i++: 0.0085721015930176s
For ++$i: 0.0050549507141113s
//PHP 5.6.29
For $i++: 0.029861927032471s
For ++$i: 0.025825977325439s
//PHP 4.4.9
For $i++: 0.186533s
For ++$i: 0.165582s
Conclusion:
Al parecer un Bucle con un pre-incremento es un poco mas rapido que uno con Post-incremento.
Tambien se puede ver como las versiones PHP mas modernas ofrecen mejores resultados.