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