Sem benchmarks, mas pessoalmente sinto que $array[]
é mais limpo de se olhar e, honestamente, dividir fios de cabelo em milissegundos é bastante irrelevante, a menos que você planeje acrescentar centenas de milhares de strings ao seu array.
Editar : executou este código:
$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
$array[] = $i;
}
print microtime(true) - $t;
print '<br>';
$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
array_push($array, $i);
}
print microtime(true) - $t;
O primeiro método usado $array[]
é quase 50% mais rápido do que o segundo.
Alguns resultados de benchmark:
Run 1
0.0054171085357666 // array_push
0.0028800964355469 // array[]
Run 2
0.0054559707641602 // array_push
0.002892017364502 // array[]
Run 3
0.0055501461029053 // array_push
0.0028610229492188 // array[]
Isso não deve ser surpreendente, pois o manual do PHP observa o seguinte:
Se você usar array_push () para adicionar um elemento ao array, é melhor usar $ array [] = porque dessa forma não há sobrecarga de chamar uma função.
Da forma como está formulado, eu não ficaria surpreso se array_push
fosse mais eficiente ao adicionar vários valores. EDIT : Por curiosidade, fiz mais alguns testes e, mesmo para uma grande quantidade de adições, as $array[]
chamadas individuais são mais rápidas do que uma grande array_push
. Interessante.