魔术方法__construct()和__destruct()的用法是什么。他们总是需要吗?
需要一个很好的简单答案,这有点令人困惑。
答案 0 :(得分:2)
不需要它们。 在初始化时调用构造,即在创建/构造对象时。 在清理时会调用Destruct。
示例:强>
class Foo
{
function __construct()
{
echo "start";
}
function __destruct()
{
echo "end";
}
}
$foo = new Foo(); // outputs start
echo ' : ';
unset( $foo ); // outputs end
echo ' ! ';
以上代码段输出start : end !
。如果我们不使用unset
,在清理时仍会在脚本末尾调用析构函数,那么输出将是:start : ! end
链接强>
答案 1 :(得分:2)
关于__construct()
,它使您可以使用新创建的对象和来覆盖父类的__construct()
方法。
所以它可能不是必需的(也不是),但是如果一个类扩展了另一个类,可能需要添加一个构造函数来避免自动调用父构造函数。
答案 2 :(得分:0)
我对构造最常见的用法是将类变量初始化为默认值。虽然我还没有必要使用destruct。