我有一个类,其中一些方法中设置了类变量。该类有一个__destruct()函数,它使用unset()函数取消设置类变量。
现在我列出了在__destruct中取消设置的所有变量,但似乎应该有一种方法来取消所有。
例如,我现在正在这样做:
function __destruct()
{
unset($this->variable1);
unset($this->variable2);
//et cetera
}
肯定有这样的方法可以在不列出它们的情况下取消它们,对吗?
答案 0 :(得分:5)
foreach ($this as &$value) {
$value = null;
}
请参阅http://www.php.net/manual/en/language.oop5.iterations.php。
你不应该unset
属性,它们是类/对象的一部分。将它们设置为null
而不是清除它们的值。但是:无论如何,对象是内存耗尽,所有属性都将随之而来。没有必要这样做。