原始对象和克隆对象的学说集合之间有什么区别?

时间:2019-01-18 10:48:31

标签: php doctrine-1.2

有一个学说集,我想更改它的一些值。这些发生在另一个类中,并传递到dao级别以将其保存到数据库。还有另一行从db获取数据。由于该行,所有更改的对象都将替换。

$doctrineCollection1 = $empSalaryComponents->findBy('employee_number', $empNumber);
foreach ($empSalComCollection1 as $empSalComponent) {
            $empSalComponent->setValue(9999999999999);
        }
$doctrineCollection2 = $empSalaryComponents->findBy('employee_number', $empNumber);

现在,如果您打印这两个收藏集,您将得到相同的结果。

为避免这种情况,请使用这种方法

$doctrineCollection1 = $empSalaryComponents->findBy('employee_number', $empNumber);
$employeeSalaryComponents = new Doctrine_Collection('EmployeeSalaryComponent');
 foreach ($doctrineCollection1 as $object) {
    $object = clone $object;
    $object->setValue(9999999999999);
    $employeeSalaryComponents->add($object);
 }
$doctrineCollection2 = $empSalaryComponents->findBy('employee_number', $empNumber);

现在$ doctrineCollection1和$ employeeSalaryComponents是不同的。 谁能解释这个原因?

0 个答案:

没有答案