do array () уничтожить все предыдущие значения?

У меня есть массив $ с некоторыми значениями, хранящимися на нем. Теперь, если я это сделаю:

$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!)