PHP对象实例是否可以销毁/取消自定义?假设我有一个代表一个文件的类,然后我使用该类删除该文件。我能以某种方式从其自己的方法之一中取消设置实例吗?类实例可以自毁吗?
$file = new FileClass();
$file->copy('/some/new/path/');
$file->delete();
// ... at this point $file would be seen as unset.
PHP对象实例是否可以销毁/取消自定义?假设我有一个代表一个文件的类,然后我使用该类删除该文件。我能以某种方式从其自己的方法之一中取消设置实例吗?类实例可以自毁吗?
$file = new FileClass();
$file->copy('/some/new/path/');
$file->delete();
// ... at this point $file would be seen as unset.
这是我能想到的唯一的解决办法:
function delete($var_name) {
unset($GLOBALS[$var_name]);
}
然后你做:
$file->delete('file');
无论如何,一个类不能自杀(没有帮助从外部)。
或者,因此它被回收垃圾时不再使用,你可以限制$文件的范围:
call_user_func(function() {
$file = new FileClass();
$file->copy('/some/new/path/');
$file->delete();
});
// ... at this point $file would be seen as unset.
了“是 - 和 - 这里 - 是 - 如何”的答案基本上是类似的问题在这里 - http://stackoverflow.com/a/21367011/1537018 – 2014-01-26 18:06:33