【发布时间】:2012-02-13 20:47:17
【问题描述】:
是否可以通过执行特定类的代码来取消设置(清理或取消实例化)该类的对象?
我的场景是,由于某种原因,我达到了该对象不再存在的意义,所以我想通过杀死它在内存中的引用来确保它不会再次被使用。
这是一个 sn-p 示例:
class Foo {
public $bar = "doh!";
function destroy() {
// ???
}
}
$o = new Foo();
echo $o->bar . '\n';
$o->destroy();
echo $o->bar . '\n'; // I expect an error here...
如果我在类代码之外执行“取消设置”命令,它显然有效:
$o = new Foo();
unset($o);
echo $o->bar . '\n'; // PHP Notice: Undefined property: Foo::$bar in ...
但我尝试在“destroy”方法中通过调用“unset”或创建自定义“__destruct”来执行此操作,但均未奏效。
非常欢迎任何想法。
干杯,
【问题讨论】:
-
你取消了什么,你能写出确切的行吗..
-
php - unset $this的可能重复