使用适合显示HTML的php析构函数?

Chr*_*ris 4 php destructor

如果实现了一个通过构造和调用各种方法为页面构建HTML的类,那么在析构函数中定义类的显示/回显部分是否合适?

而不是有一个显式Class:displayHTML();方法,echo $this->html在析构函数中,每当你准备显示unset($object);将显示它的调用?

我知道析构函数可能不是最好的地方,但想知道其他人的想法是什么?

Gor*_*don 10

这对我来说听起来不太可行.未设置不等于回声.这是一个根本不同的事情.此外,请记住,对象不仅会被销毁,unset而且当它们不再被引用时和/或脚本终止时也会被销毁.这有很多潜在的不良副作用.

如果您不想拥有/调用a displayHTML()render()方法,请实现该部分__toString()并仅回显实例.

class HTMLSomething
{
    /* ... */
    public function __toString()
    {
        /* create $output */
        return $output;
    }
}
$something = new HTMLSomething;
echo $something;
Run Code Online (Sandbox Code Playgroud)


Dom*_*ger 6

这两者中哪一个有更明显的结果?

unset($object);
Run Code Online (Sandbox Code Playgroud)

要么:

$object->displayHTML();
Run Code Online (Sandbox Code Playgroud)

想一想,然后去读一下最小惊讶原则.