php - 在析构函数中取消设置对象属性是否更有效?

标签 php performance destructor

假设一个对象具有大量数据的属性,在析构函数中取消设置属性是否更有效?或者让 php 释放该对象分配的内存?

class A {
    protected $foo;
    protected $bar;
    protected $baz;

    public function __construct()
    {
        $this->foo = big_amount_of_data();
        $this->bar = reference_to_a_big_object();
        $this->foo = data_from_big_file();
    }

    public function doProcess()
    {
        // do something
    }

    public function __destruct()
    {
        // Should I do this?
        unset(
            $this->foo,
            $this->bar,
            $this->baz
        );
    }
}

最佳答案

分配 null 比取消设置要好。它更快,如果有其他变量引用您正在取消设置的变量,分配 null 实际上会释放内存,而取消设置不会 - 其他变量仍将具有数据而不是空值

关于php - 在析构函数中取消设置对象属性是否更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25376599/

相关文章:

php - PHP 中的 FileCache 与 Session

php - 通过 JavaScript 提交表单,无需刷新页面

performance - 哪种方法会表现更好? (或者差异还不够大吗?)

c++ - 创建一个 'new' 实例解决析构函数崩溃?

php - 使用 codeigniter 进行多表选择

javascript - 使用 AJAX 通过 JavaScript 函数执行 PHP 脚本

java - 如何提高从 hazelcast 读取数据的 Get 方法性能?

c++ - 用于数学的 Node.js 与 C++

C++ 我可以期望所有编译器都不会破坏返回的拷贝吗?

php - 是否存在未调用 PHP 中的析构函数的情况?