2013-06-13 78 views
0

我是新來的PHP,所以我需要你的一些建議。這是我寫的一個簡單的課程。可以使用php __destruct方法在這種情況下

class Logger 
{ 
    private $handle; 

    public function readFile($filename) 
    { 
     $this->handle = fopen($filename, 'a+'); 
    } 

    public function writeFile($strData) 
    { 
     fwrite($this->handle, $strData); 
    } 

    public function __destruct() 
    { 
     fclose($this->handle); 
    } 
} 

它工作的很好。我不確定__destruct。這是一個在這種情況下放置fclose的正確位置,或者如果我添加一個close方法會更好嗎?

+1

我肯定會將readFile方法重命名爲更有意義的東西,比如openFile。 – 2013-06-13 10:42:58

回答

0

好吧!把close()放在析構函數中意味着當對象被銷燬時它總是被調用,即使你忘記調用一個已定義的close方法,所以把它放在那裏是合乎邏輯的......儘管像close一樣基本)無論如何都會完成,所以它不是析構函數的最佳用例。當需要顯式處理時,使用析構函數更有用,而不是無論如何會發生的事情,比如向文件寫入額外的行。

0

如果您在創建Logger實例時未打開文件,則可能不想在析構函數中關閉文件。

相關問題