在类毁灭中取消设置($ this)是一个好主意,它会有什么不同?
function __destruct(){
unset($this);
}
答案 0 :(得分:3)
$this
is a special variable in PHP - 那很特别,它是假的。我想知道你是否可以在类/对象上下文中取消它,可能在早期的PHP版本中,但是你应该认为它是一个缺陷。
不要那样做。取消设置对象指针(来自外部),垃圾收集会自行处理。
__destruct
函数用于取消设置$this
对象实际内部的“外部”对象指针,就像使用聚合和组合一样。
特别是对于循环引用,它可能有助于PHP垃圾收集器更有效地完成工作。但这不依赖于$this
,而是对象实际携带的内容,这意味着它高度依赖于具体的代码。
您是否遇到了垃圾收集器无法处理的实际内存问题?只有当您可以使用是回答时,通常需要考虑__destruct
。
答案 1 :(得分:2)
不,这完全没有意义。 unset
本身不释放内存,它只是将其标记为垃圾收集的候选者,这正是破坏对象已经意味着什么。