Никаких тестов, но лично я чувствую, что $array[]
выглядит чище, и честное разделение волос в течение миллисекунд довольно неактуально, если вы не планируете добавлять сотни тысяч строк в ваш массив.
Редактировать : Выполнить этот код:
$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;
Первый метод с использованием $array[]
почти на 50% быстрее второго.
Некоторые результаты тестов:
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[]
Это не должно удивлять, так как руководство PHP отмечает это:
Если вы используете array_push () для добавления одного элемента в массив, лучше использовать $ array [] =, потому что в этом случае нет необходимости вызывать функцию.
То, как это сформулировано, не удивлюсь, если array_push
будет более эффективным при добавлении нескольких значений. EDIT : из любопытства провел дополнительное тестирование, и даже для большого количества добавлений отдельные $array[]
вызовы выполняются быстрее, чем один большой array_push
. Интересно.