У меня есть массив $ с некоторыми значениями, хранящимися на нем. Теперь, если я это сделаю:
$array=array();
все значения / индекс удаляются? Или мне нужно использовать unset () перед этим?
Новый массив создается с помощью array()
и этот новый объект массива присваивается переменной $array
.
Переменная ( $array
) больше не указывает на исходный объект массива – и поскольку PHP является сборником мусора, исходный объект массива будет иметь право на восстановление, если (и только если) он больше не может быть достигнут с корнем объект. (Фактическое время, когда предыдущий объект массива и объекты, которые он содержит, фактически удалены, зависит от других факторов.)
Счастливое кодирование.
См. Руководство по сборке мусора PHP для получения дополнительной информации. PHP использует гибридный GC (счетчик ссылок и прерывание цикла).
Да, переназначение просто вытирает все данные из массива. Но чтобы получить четкое представление о сборе мусора, пожалуйста, проверьте основы подсчета ссылок PHP .
$array = array('apples', 'oranges', 'bananas'); print_r($array); //Array ( [0] => apples [1] => oranges [2] => bananas ) $array = array(); print_r($array); //Array ( )
Ваше намерение было бы более ясным, если бы вы использовали что-то вроде
$array = null;
(и даже яснее, если вы использовали лучшее имя, чем $ array!)