【问题标题】:PHP Destructor | unset() VS overwriting objectPHP 析构函数 | unset() VS 覆盖对象
【发布时间】:2018-01-02 00:52:03
【问题描述】:

我从SO question 了解到,在 PHP 中销毁对象的最佳方法是使用 unset

如果我基本上在循环中使用相同的 var,我想知道是否还需要销毁对象...

foreach ($ids_array as $id) {
    $O = new Object($id);

    // stuff and things
}

这真的使用相同的内存还是我在不知不觉中创建了一堆对象而不是销毁它们?

【问题讨论】:

  • 你每次循环都会覆盖$O

标签: php object memory destructor


【解决方案1】:

如果没有变量引用一个对象,它最终会被垃圾回收。为此,无论您是 unset 变量还是简单地为它们分配其他东西以便它们停止引用该对象,都无关紧要。

IMO 你应该很少使用unset,你应该编写小函数,当它们返回时,它们会自动丢弃其范围内的所有变量,这意味着事情迟早会自动收集垃圾而且您不必担心太多。

【讨论】:

    猜你喜欢
    • 2018-03-02
    • 1970-01-01
    • 2015-08-11
    • 2017-04-21
    • 1970-01-01
    • 2017-05-20
    • 2014-01-09
    • 1970-01-01
    • 2016-02-10
    相关资源
    最近更新 更多