【问题标题】:Automatically Unsetting All Class Variables in _destruct in PHP5PHP5 自动取消设置 _destruct 中的所有类变量
【发布时间】:2011-09-30 02:30:47
【问题描述】:

我有一个类,其中在某些方法中设置了类变量。该类有一个 __destruct() 函数,该函数使用 unset() 函数取消设置类变量。

现在我在 __destruct 中列出所有要取消设置的变量,但似乎应该有一种方法可以取消所有设置。

例如,我现在正在这样做:

function __destruct()
{
  unset($this->variable1);
  unset($this->variable2);
  //et cetera
}

肯定有办法在不列出它们的情况下将它们全部取消设置,对吧?

【问题讨论】:

    标签: php unset


    【解决方案1】:
    foreach ($this as &$value) {
        $value = null;
    }
    

    http://www.php.net/manual/en/language.oop5.iterations.php

    你不应该unset 属性,它们是类/对象的一部分。将它们设置为 null 以清除它们的值。但是:无论如何,对象都是关于内存不足的,所有属性都会随之而来。没有必要这样做。

    【讨论】:

    • 谢谢。我知道当脚本使用对象的实例完成时,它会被刷新,但我试图坚持(我认为)是良好的编程习惯。
    • 如果您的类实现了 IteratorAggregate,并且该方法仅应用于该类的单个数组属性,您将如何做到这一点?您如何将其也应用于静态属性?
    • @Butt 请发布一个新问题,我不完全确定您在问什么,而且 cmets 并不是讨论深入技术细节的合适场所。
    猜你喜欢
    • 2017-11-14
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2011-12-12
    • 2016-05-07
    相关资源
    最近更新 更多