附加到数组而不复制

时间:2014-05-07 01:57:48

标签: php

通常我们使用

添加到数组中
$myarray[] = $myItem

但如果$ myItem是一个庞大的对象,我不希望它被复制,而是希望它通过引用分配。像

这样的东西
$myarray[] = &$myItem

但这并不起作用,而是用$ myItem替换$ myarray中的每个元素

我试过

$myarray[count($myarray)] = &$myItem

但它仍然取代了$ myarray中的所有内容

我正在运行PHP v5.5

2 个答案:

答案 0 :(得分:2)

始终通过引用分配对象。所以:

$collection = array();

$blah = new Blah();

$blah->param = "something";

$collection[] = $blah;

$blah->param = "changed";

echo $collection[0]->param; // will output "changed"

答案 1 :(得分:1)

根据How to push a copy of an object into array in PHP

  

对象总是通过php 5或更高版本中的引用传递。

因此,这个问题不再是一个问题。