do array()会破坏以前的所有值吗?

时间:2011-04-30 22:01:42

标签: php arrays

我有一个$数组,其中存储了一些值。现在,如果我这样做:

$array=array();

删除所有值/索引?或者我需要在它之前使用unset()?

4 个答案:

答案 0 :(得分:4)

正在使用array()创建数组,并将此数组对象分配给变量$array

变量($array)不再指向原始数组对象 - 并且因为PHP是垃圾收集语言 - 原始数组对象将有资格进行回收如果(并且仅当)它不再可以从根对象强烈访问。 (实际删除前一个数组对象及其包含的对象的实际时间取决于其他因素。)

快乐的编码。


有关详细信息,请参阅PHP Garbage Collection Manual - PHP使用混合GC(引用计数和循环中断)。

答案 1 :(得分:2)

是的,重新分配只是清除阵列中的所有数据。但要清楚了解垃圾收集,请查看PHP Reference Counting Basics

答案 2 :(得分:2)

$array = array('apples', 'oranges', 'bananas');
print_r($array);
//Array ( [0] => apples [1] => oranges [2] => bananas ) 

$array = array();
print_r($array);
//Array ( )

答案 3 :(得分:0)

如果你使用像

这样的东西,你的意图会更清楚
$array = null; 

(如果你使用比$ array更好的名字,那就更清楚了!)