0

魔术方法 __construct() 和 __destruct() 的用途是什么。他们总是需要吗?

需要一个很好的简单答案,这有点令人困惑。

4

3 回答 3

2

它们不是必需的。Construct 在初始化时调用,即在创建/构造对象时调用。清理时调用 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

关联

http://php.net/manual/en/language.oop5.decon.php

于 2012-05-08T21:27:50.277 回答
2

About __construct(),它使您可以对新创建的对象做一些事情覆盖__construct()父类的方法。

所以它可能不是必需的(也不是),但是如果一个类扩展了另一个类,则可能需要添加一个构造函数来避免自动调用父构造函数。

于 2012-05-08T21:29:00.787 回答
0

我对构造的最常见用途是将类变量初始化为默认值。不过,我还没有需要使用 destruct 。

于 2012-05-08T21:47:42.350 回答