Переназначение массива освобождает память, используемую им? - PullRequest
2 голосов
/ 22 января 2010

В моем классе есть массив переменных-членов, items. Периодически я переназначаю массив как значение другого временного массива, например:

$temp = array();
$temp[] = new Object();
$temp[] = new Object();
$temp[] = new Object();
... etc.

$this->items = $temp;

Итак, у меня может быть утечка памяти? При переназначении значения $ this-> temp на новое значение, $ temp, все элементы (элементы являются объектами), изначально находящиеся в $ this-> temp, все еще будут задерживаться или они будут освобождены?

Ответы [ 2 ]

3 голосов
/ 22 января 2010

Это не приведет к утечке памяти. Элементы $ temp и $ this-> являются просто ссылками на один и тот же массив. Поскольку PHP является языком для сборки мусора, массив будет удален (сборщик мусора), когда больше нет ссылок на массив.

1 голос
/ 22 января 2010

Они будут задерживаться на некоторое время, но в PHP они в конечном итоге будут освобождены сборщиком мусора .

...