对象被推到数组覆盖


Object pushed to array overites

我遇到了一件奇怪的事情,它可能很简单,但我找不到解决方案

$counter = 0;
$autoload_view_instace = new Logic_InvoiceCostData;
$sub_view_cost = array();
foreach($invoceCostData as $data)
{
    $counter++;
    $parm = $autoload_view_instace->edit_view_data($autoload_view, $data, $counter);
    array_push( $sub_view_cost, $parm);
}

循环调用edit_view_data方法,该方法返回一个具有某些值的对象。在每次迭代中,该对象应放置在数组的末尾,而不更改先前添加的对象的值。但是在每次迭代之后,数组中的所有对象都与新添加的对象具有相同的值。

显然array_push语法是正确的。。它应该起作用。。但是,您可以使用执行相同的操作。$sub_view_cost[]=$parm;

并确保每次$parm都获得正确的值