По вашему мнению, если бы у меня был массив из 100 000 записей из 8-символьных строк, было бы лучше использовать память для unset($array)
сначала, а затем переопределить его как $array = [];
или просто переопределить его ($array = [];
)?
Спасибо!
Все выходит одинаково. Перезапись «старого» массива НИЧЕГО новым приведет к тому, что старый массив (со временем) будет собирать и удалять мусор из системы. Делаете ли вы это в два этапа:
unset($arr); // force delete old array
$arr = []; // create new array
или просто
$arr = []; // replace old array with new empty one
в основном сводится к тому же: старый массив в конечном итоге будет очищен.
В то время как Марк Бответ абсолютно правильно, я хотел увидеть для себя на основе Даанкомментарий.
С помощью memory_get_usage()
Я сделал быстрый тест между unset()
а также переопределение. Оба одинаково уменьшили память.
unset()
$arr = array_fill(0, 1000000, 'abcdefgh'); // memory: 96613552
unset($arr); // memory: 224856
переопределение
$arr = array_fill(0, 1000000, 'abcdefgh'); // memory: 96613552
$arr = []; // memory: 224856