2014-05-07 53 views
0

一般我们添加到阵列追加到一个数组不复制

$myarray[] = $myItem 

但如果$ myItem是一个巨大的物体,我不希望它被复制,而不是我希望它通过参考分配。像

$myarray[] = &$myItem 

但是,这并不工作,而不是其他替换$ myarray中的每一个元素与$ myItem

我试图

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

,但它仍然在$ myarray中取代一切

我正在运行PHP v5.5

+0

也许这可能有一些帮助? [如何将对象推送到数组..](http://stackoverflow.com/q/5625308/2518525) – Darren

+0

出于好奇,如果$ myItem是一个大数组,会发生什么? – wonton

+0

这根本没有意义,你是指“用$ myarray代替所有东西”是什么意思? –

回答

2

对象始终按引用进行分配。所以:

$collection = array(); 

$blah = new Blah(); 

$blah->param = "something"; 

$collection[] = $blah; 

$blah->param = "changed"; 

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