Php 神奇方法_construct()和_destruct()的用法是什么。它们总是必需的吗?

Php 神奇方法_construct()和_destruct()的用法是什么。它们总是必需的吗?,php,Php,神奇方法_construct()和_destruct()的用法是什么。它们总是必需的吗 需要一个简单的答案,有点困惑 它们不是必需的。 构造在初始化时调用,即在创建/构造对象时调用。 清理时调用Destruct 示例: class Foo { function __construct() { echo "start"; } function __destruct() { echo "end"; } } $foo

神奇方法_construct()和_destruct()的用法是什么。它们总是必需的吗

需要一个简单的答案,有点困惑

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

示例:

class Foo
{
    function __construct()
    {
        echo "start";
    }

    function __destruct()
    {
        echo "end";
    }
}

$foo = new Foo(); // outputs start
echo ' : ';
unset( $foo );    // outputs end
echo ' ! ';
上面的代码段输出<代码>开始:结束。如果我们不使用
unset
清理脚本时,析构函数仍将在脚本末尾被调用,那么输出将是:
start:!结束

链接

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

示例:

class Foo
{
    function __construct()
    {
        echo "start";
    }

    function __destruct()
    {
        echo "end";
    }
}

$foo = new Foo(); // outputs start
echo ' : ';
unset( $foo );    // outputs end
echo ' ! ';
上面的代码段输出<代码>开始:结束。如果我们不使用
unset
清理脚本时,析构函数仍将在脚本末尾被调用,那么输出将是:
start:!结束

链接

关于
\uuuu construct()
,它使您可以对新创建的对象执行一些操作,并覆盖父类的
\uu construct()
方法

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

关于
\u construct()
,它使您可以对新创建的对象执行一些操作,并覆盖父类的
\u construct()
方法


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

我对构造函数最常用的用法是将类变量初始化为默认值。不过,我还不需要使用析构函数。

构造的最常用用法是将类变量初始化为默认值。不过我还没有必要使用析构函数。

谢谢你的简单解释,那么u destruct()呢,你能不能也用一种简单的方式来描述一下?@user1383080我对u destruct()没有太多的用处,它在你销毁你的对象时做你告诉它做的事情,在我的例子中,几乎总是在脚本结束时,我不想做任何其他事情…谢谢你的简单解释,关于u destruct(),你能用一种简单的方式描述一下吗?@user1383080我对
u destruct()
,当你摧毁你的目标时,它会做你告诉它做的事情,在我的情况下,几乎总是在脚本结束时,当我无论如何不想做任何其他事情时…@ArshadHussain应该为你工作。在这里试试这个片段:当我们不使用unset($foo)时,输出“end”也会出现;是的,所有实例在清理时都会被销毁。我只是使用了
unset
来更好地可视化流程。有关更多解释,请参阅更新的答案。@ArshadHussain应该适合您。在这里试试这个片段:当我们不使用unset($foo)时,输出“end”也会出现;是的,所有实例在清理时都会被销毁。我只是使用了
unset
来更好地可视化流程。有关更多说明,请参阅更新的答案。