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

use*_*070 5 php arrays

如果我取消设置数组,它的元素是垃圾收集还是释放,假设它们没有被其他地方引用?如果我只是做$ array = new array();

$array = array('a'=>1);
//method 1 to clear array
unset($array);

方法2清除数组

$array = array('a'=>1);
//method 2 to clear array
$array y = array();

for*_*erg 5

以下简单的代码回答了问题:

        $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
Run Code Online (Sandbox Code Playgroud)


Joh*_*oit 3

检查php < 5.3 垃圾收集,是否需要将数组值设置为 null,或者设置 array = null 是否会孤立其所有元素?,也许这将有助于回答你的问题。

  • 至少在我看来,这应该是评论而不是答案。向下滚动到答案部分并看到重定向,这就是论坛时代的生活。不过,很好的发现! (12认同)