array_push()和$ array [] =之间的区别

l2a*_*lba 116 php arrays push

在PHP手册中,(array_push)说..

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

例如 :

$arr = array();
array_push($arr, "stackoverflow");
print_r($arr);
Run Code Online (Sandbox Code Playgroud)

VS

$arr[] = "stackoverflow";
print_r($arr);
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会有很大的不同.

Ben*_*enM 147

当您在PHP中调用函数(例如array_push())时,调用会产生开销,因为PHP必须查找函数引用,在内存中找到它的位置并执行它定义的任何代码.

使用$arr[] = 'some value';不需要函数调用,并直接实现数据结构的添加.因此,在添加大量数据时,使用它会更快,更节省资源$arr[].

  • 如果这样的符号"$ arr [] ='某些价值'怎么办?" 归结为功能的召唤? (2认同)
  • @Kevin:你我同意你的看法,我很确定在替代语法背后有一个函数,它不是上面提到的那个,因为我看到了 php 文档中的闲置评论:“如果你使用 array_push() 添加一个元素对于数组,最好使用 $array[] = 因为这样就没有调用函数的开销。” 现在没有时间确切了解其背后的内容,因为搜索词对搜索引擎来说有点混乱:) (2认同)
  • @c ..-大概编译器的差异是因为“array_push”允许推送多个值,并且更容易作为函数实现。 (2认同)

Suj*_*ngh 43

您可以使用array_push一次性向一个镜头添加多个元素,

例如 array_push($array_name, $element1, $element2,...)

其中$ element1,$ element2,...是要添加到数组的元素.

但是如果你想一次只添加一个元素,那么应该首选其他方法(即使用$ array_name []).

  • @testing123 绝对不是。最好使用手头可用的最有效的解决方案,除非它严重削弱了可读性、兼容性等(或者如果您需要遵守某些样式指南)。 (2认同)

Bai*_*aig 15

差异在下面的行中"因为这样就没有调用函数的开销."

array_push()如果第一个参数不是数组,则会发出警告.这与$var[]创建新数组的行为不同.

  • 我没有说这是一个原因.在这个问题中,提出了差异,这也是差异 (4认同)

Ben*_*aap 7

$array[]如果可能的话,您应该始终使用,因为该框表示函数调用没有开销.因此它比函数调用快一点.