我需要知道是否有办法销毁symfony 1.4中的对象,因为我在数据库中插入了一个cicle for
。
foreach ($array_data as $payroll_employee)
{
$discounts = new PayrollDiscounts();
$discounts->setPayrollId($payroll_id);
$discounts->save();
$discounts->free(TRUE);
unset($discounts);
}
并显示此错误:
致命错误:允许的内存大小为134217728字节耗尽
所以我需要知道一种提供记忆的方法。
答案 0 :(得分:1)
我发现让Symfony释放内存可能会很棘手,不过你可以尝试设置$discounts = null;
而不是取消它(请参阅What's better at freeing memory with PHP: unset() or $var = null)。
对于像我这样的简单批量插入,我建议使用SQL(最好是PDO)而不是Doctrine进行插入。
答案 1 :(得分:1)
使用unset()
将专门释放与变量关联的内存,但是我怀疑$discounts
变量的设置是否会遇到内存分配问题,因为它会被覆盖每次循环传递。 $array_data
本身太大了吗?是导致问题的$discounts
对象上执行的方法之一吗?
尝试在代码中设置一些断点,以便更好地找到遇到内存问题的位置。
答案 2 :(得分:0)
答案 3 :(得分:-1)
您可以使用unset()
在PHP中销毁对象。这就是你已经在做的事情。
为了增加可用内存 - 您必须设置PHP配置值
memory_limit
更大的数字。