在PHP $ array [] = $ value或array中使用哪个更好

在PHP中使用附加数组成员$array[] = $valuearray_push($array, $value)更好吗?

虽然手册说你最好避免函数调用,但我也读过$array[]array_push()慢得多。 有没有人有任何澄清或基准?


没有基准测试,但我个人觉得$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在添加多个值时效率更高,我不会感到惊讶。 编辑 :出于好奇,做了一些进一步的测试,甚至对于大量的补充,单个$array[]调用比一个大的array_push快。 有趣。


array_push()的主要用途是可以将多个值推送到数组的末尾。

它在文档中说:

如果使用array_push()将一个元素添加到数组中,最好使用$ array [] =,因为这样就没有调用函数的开销。


array_push的php文档:

注意:如果使用array_push()将一个元素添加到数组中,最好使用$ array [] =,因为这样就不会有调用函数的开销。

链接地址: http://www.djcxy.com/p/59397.html

上一篇: What's better to use in PHP $array[] = $value or array

下一篇: PHP: Creating default object from empty value