在PHP5中的_destruct中自动取消设置所有类变量

时间:2011-07-07 01:48:34

标签: php unset

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

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

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

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

肯定有这样的方法可以在不列出它们的情况下取消它们,对吗?

1 个答案:

答案 0 :(得分:5)

foreach ($this as &$value) {
    $value = null;
}

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

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