Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于已清除或未设置的php数组,元素是否被垃圾收集?_Php_Arrays - Fatal编程技术网

对于已清除或未设置的php数组,元素是否被垃圾收集?

对于已清除或未设置的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

如果我取消设置一个数组,它的元素会被垃圾收集还是释放,假设它们没有在其他任何地方被引用? 如果我只做$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<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);