2013-06-13 60 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实例时未打开文件,则可能不想在析构函数中关闭文件。

相关问题