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


What is the usage of the magic methods __construct() and __destruct(). Are they always required?

魔法方法__construct()和__destruct()的用法是什么?它们总是需要吗?

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

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

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

它们不是必需的。构造在初始化时调用,即创建/构造对象时。清理时调用销毁。

例:

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

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