如果实现了一个通过构造和调用各种方法为页面构建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)
这两者中哪一个有更明显的结果?
unset($object);
Run Code Online (Sandbox Code Playgroud)
要么:
$object->displayHTML();
Run Code Online (Sandbox Code Playgroud)
想一想,然后去读一下最小惊讶原则.