我是php的新手,所以我需要你的一些建议。这是我写的一个简单的课程。
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方法会更好?
答案 0 :(得分:0)
嘛!将close()放在析构函数中意味着它会在对象被销毁时始终被调用,即使你忘记调用一个已定义的close方法,所以把它放在那里是合乎逻辑的....尽管像close这样基本的东西(无论如何都会完成,所以它不是析构函数的最佳用例。当需要显式处理时,使用析构函数更有用,而不是无论如何都会发生,例如在文件中写入额外的行。
答案 1 :(得分:0)
如果在创建Logger实例时没有打开文件,则可能不希望在析构函数中关闭文件。