0

我有一个类似于

    $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每次都会创建一个新变量(这会消耗内存),然后尝试删除我的旧变量并替换为新变量(我猜它是这样工作的) .

4

0 回答 0