0

我是 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 方法会更好?

4

2 回答 2

0

好!将 close() 放在析构函数中意味着它总是在对象被销毁时被调用,即使你忘记调用定义的 close 方法,所以把它放在那里是合乎逻辑的......虽然像 close( ) 无论如何都会完成,因此它不是析构函数的最佳用例。当需要显式处理时使用析构函数更有用,而不是无论如何都会发生的事情,例如向文件中写入额外的行。

于 2013-06-13T10:41:10.757 回答
0

如果您在创建 Logger 实例时没有打开文件,您可能不想在析构函数中关闭文件。

于 2013-06-13T10:44:48.610 回答