在PHP手册中,(array_push)说..
如果使用array_push()将一个元素添加到数组中,最好使用$array[] =,因为这样就没有调用函数的开销。
例如:
$arr = array();
array_push($arr, "stackoverflow");
print_r($arr);
vs
$arr[] = "stackoverflow";
print_r($arr);
我不明白为什么会有这么大的不同。
发布于 2013-01-09 18:13:34
当你在PHP中调用一个函数(比如array_push()
)时,调用是有开销的,因为PHP必须查找函数引用,找到它在内存中的位置,并执行它定义的任何代码。
使用$arr[] = 'some value';
不需要函数调用,直接在数据结构中实现加法。因此,当添加大量数据时,使用$arr[]
会更快、更节省资源。
发布于 2013-01-09 18:24:02
您可以使用array_push一次向数组添加1个以上的元素,
例如array_push($array_name, $element1, $element2,...)
其中$element1,$element2,..。是要添加到数组中的元素。
但是,如果您希望一次只添加一个元素,则应首选其他方法(即使用$array_name[])。
发布于 2013-01-09 18:15:56
不同之处在于下面这一行“因为这样就没有调用函数的开销”。
如果第一个参数不是数组,
array_push()
将发出警告。这与创建新数组的$var[]
行为不同。
https://stackoverflow.com/questions/14232766
复制相似问题