PHP中的解构函数

Joh*_*nny 1 php

看了一些旧代码后:

//Nothing like a destructor!!
function destroy() {
    settype(&$this, 'null');
}
Run Code Online (Sandbox Code Playgroud)

并呼吁

$Cache->destroy();
Run Code Online (Sandbox Code Playgroud)

但是在PHP 5.3中我得到了不推荐使用:第154行的/blah/-cache-.php中不推荐使用call-time pass-by-reference

我该怎么做?

Pek*_*ica 8

通过移除&in 可以解决您的直接问题$this,但整个构造对我来说没有意义.如果$this从对象的上下文中删除它并不是无效的,那绝对不是好习惯.

要破坏一个对象,一个简单的

unset($Cache);
Run Code Online (Sandbox Code Playgroud)

会做.

如果想要在对象被销毁时执行东西,则应该在类中定义析构函数.(你的destroy()代码中的注释说这不是重点.:)