我有一个类似于
$items = array(10, 12, 13, 23, 34, 32, 11, 98);
$items_single = array();
foreach ($items as $item) {
$item_data = "SELECT * FROM MY_TABLE WHERE ITEM_ID = $item";
// Don't worry, this is just a demo query, I don't query like this
array_push($items_single, $item_data);
unset($item_data);
// $item_data = NULL;
}
哪个是释放$item_data
内存的更好方法?虽然unset()
看起来更合乎逻辑,但我认为这种方式 php 不会立即取消设置,而是会将其置于循环后可能调用的垃圾收集之类的东西......?(这将无法达到unset()
最初的目的)。虽然= NULL
似乎正在做最理想的事情,但是这将需要一些恒定的时间,这实际上可能会减慢循环速度。
另外,如果我什么都不做,那么php每次都会创建一个新变量(这会消耗内存),然后尝试删除我的旧变量并替换为新变量(我猜它是这样工作的) .