簡單的說,析構函數是用來在對象關閉時完成的特殊工作,比如我寫的上例,在實例化同時打開某文件,但是它什麼時候關閉呢,用完就關閉呗,所以析構函數直接關閉它, 又或者在析構時,我們將處理好的某些數據一並寫進數據庫,這時可以考慮使用析構函數內完成,在析構完成前,這些對象屬性仍然存在,並且僅用於內部訪問,所以可以放心的做與對象有關的任何善後工作 析構函數並不是為了把對象自身的內存釋放,而是當用戶需要額外釋放某些內存時用它來指導php需要釋放的內存在哪裡,最後php在析構時使用
class x
{
function __construct()
{
$this->file = fopen('path', 'a');
}
function __destruct()
{
fclose($this->file);
}
}