为PHP匿名对象分配的内存是否被释放?

时间:2011-02-21 06:50:21

标签: php memory-management

例如:

我有一个用$object = new stdClass();创建的对象,它被传递给一个函数。

我的问题是,是否释放了为此对象分配的内存,如果是 时它被释放。

同样如何检查这些内存更改

我现在手动unset($object);,只是为了安全。

2 个答案:

答案 0 :(得分:2)

在脚本执行结束时销毁对象。你可以尝试一下:

<?php

class Test  
{
    function __construct()
    {
        echo "Construct"; 
    }

    function __destruct()
    {
        echo "Destruct";
    }
}

$test = new Test();

?>

在浏览器中调用此脚本时,您将获得Construct和Destruct输出,该输出证明在脚本执行结束时对象已成功销毁。

答案 1 :(得分:2)

php是一个情节事件。每次加载网页时,代码都是从头开始运行的(在正常设置下,我会遗漏像memcached和facebook的解决方案)。这意味着内存被分配,页面被发送,然后内存被释放。取消对象基本上对你没什么用,因为程序很快就会结束。