首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >array_push()和$array[] =之间的区别

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

Stack Overflow用户
提问于 2013-01-09 18:10:04
回答 9查看 170.2K关注 0票数 118

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

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

例如:

代码语言:javascript
复制
$arr = array();
array_push($arr, "stackoverflow");
print_r($arr);

vs

代码语言:javascript
复制
$arr[] = "stackoverflow";
print_r($arr);

我不明白为什么会有这么大的不同。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-01-09 18:13:34

当你在PHP中调用一个函数(比如array_push())时,调用是有开销的,因为PHP必须查找函数引用,找到它在内存中的位置,并执行它定义的任何代码。

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

票数 155
EN

Stack Overflow用户

发布于 2013-01-09 18:24:02

您可以使用array_push一次向数组添加1个以上的元素,

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

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

但是,如果您希望一次只添加一个元素,则应首选其他方法(即使用$array_name[])。

票数 44
EN

Stack Overflow用户

发布于 2013-01-09 18:15:56

不同之处在于下面这一行“因为这样就没有调用函数的开销”。

如果第一个参数不是数组,

array_push()将发出警告。这与创建新数组的$var[]行为不同。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14232766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档