对于已清除或未设置的php数组,元素是否被垃圾收集?
如果我取消设置一个数组,它的元素会被垃圾收集还是释放,假设它们没有在其他任何地方被引用? 如果我只做$array=newarray(),会怎么样 $array=array('a'=>1); //方法1清除数组 未设置($数组); 方法2清除数组 $array = array('a'=>1); //method 2 to clear array $array y = array(); $array=array('a'=>1); //方法2清除数组 $array y=array();对于已清除或未设置的php数组,元素是否被垃圾收集?,php,arrays,Php,Arrays,如果我取消设置一个数组,它的元素会被垃圾收集还是释放,假设它们没有在其他任何地方被引用? 如果我只做$array=newarray(),会怎么样 $array=array('a'=>1); //方法1清除数组 未设置($数组); 方法2清除数组 $array = array('a'=>1); //method 2 to clear array $array y = array(); $array=array('a'=>1); //方法2清除数组 $array y=array(); 查看php
查看php<5.3垃圾收集,数组值是否需要设置为null,或者设置数组=null是否会使其所有元素孤立?这可能会帮助回答您的问题。以下简单代码回答了这个问题:
$a = array();
$a[0] = 'a1';
$a[1] = 'b2';
foreach($a as $v)
echo $v . '<br />';
//writes content of array
echo count($a) . '<br />';
//writes 2
$a = array(); //CLEAR ARRAY
foreach($a as $v)
echo $v . '<br />';
//writes nothing
echo count($a) . '<br />';
//writes 0
$a=array();
$a[0]=“a1”;
$a[1]=‘b2’;
foreach($a作为$v)
回音$v。”
;
//写入数组的内容
回声计数($a)。'
;
//写2
$a=数组()//清晰阵列
foreach($a作为$v)
回音$v。”
;
//什么也不写
回声计数($a)。'
;
//写入0
以下操作将修改阵列本身并将其保留为空:
array_splice($myArray, 0);
和1。摧毁2。至少在我看来,销毁和创建(覆盖)可能的副本应该是评论而不是答案。向下滚动到答案部分,看到重定向是论坛时代的生活。不过,这是个好发现!
array_splice($myArray, 0);