我正在办一份工作,我从供应商的大量进口库存信息。其中一些产品有很多产品,因此当我将它们存储在内存中时,它会很快变得很重。
出于这个原因,我想 - 在做任何与他人同行之后 - 完全取消每个供应商的设置。
每个“供应商”都是一个读取器和一个处理器,它被注入一个管理器,它将所有数据返回给N个写入器。管理器将Reader和Processor(大量数据所在的类)存储在一个简单的数组中。
这是一个快速演示:
$first = new stdClass();
$first->name = "I'm an object";
$first->age = 12;
$second = new stdClass();
$first->name = "I'm also an object!";
$first->age = 9;
$arr = array($first, $second);
while ($data = array_shift($arr)) {
echo "Emptying array one by one... \n";
//doesn't matter if you unset($data) or do $data=null;
}
//I want this to be empty, but's not
var_dump($first);
现在,我在数组上执行foreach()并使值通过引用传递,然后我将其(通过引用)传递给cleanup()方法。这感觉很笨拙。
我错过了一些明显的东西吗?我怎样才能做到这一点?