2014-05-07 77 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"