我有一个类似
的循环 $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()
似乎更合乎逻辑,但我认为这种方式不会马上取消它,但是会把它放在收集之类的东西可能会在循环之后被调用......? (这将首先使unset()
失败)。虽然= NULL
似乎正在做理想的事情,但是它会花费一些时间,这实际上可能会减慢循环。
另外,如果我什么都不做,那么php每次都会创建一个新的变量(这将消耗内存),然后尝试删除旧的变量并替换为新的变量(我猜它有效)这样)。