【发布时间】:2014-05-10 10:39:17
【问题描述】:
我是 OOP 编程的新手。所以我有 2 个关于 __destruct 函数的问题。
-
我可以从 __destruct 调用另一个对象函数还是其他函数已经未声明?例如:
function __destruct() $this->save(); -
我也可以在我的正常代码中调用 __destruct 函数吗?例如:
$object_name->__destruct();
【问题讨论】:
我是 OOP 编程的新手。所以我有 2 个关于 __destruct 函数的问题。
我可以从 __destruct 调用另一个对象函数还是其他函数已经未声明?例如:
function __destruct()
$this->save();
我也可以在我的正常代码中调用 __destruct 函数吗?例如:
$object_name->__destruct();
【问题讨论】:
是的,我想这会起作用,尽管在垃圾收集器中调用 save() 会有点违反直觉(而且设计很糟糕)。
是的,如果你愿意,或者当不再存在对该对象的引用时,它会被 PHP 自动调用。
【讨论】:
首先__destruct是对象的析构函数,和__construct一样
当您创建对象(__construct 将调用)和您删除或销毁对象(__destruct 将被调用)时,上述两个函数都会自动调用
您可以从构造函数或析构函数调用 N 个函数。构造函数的主要目的是初始化对象并分配适当的内存位置。
如果反向使用析构函数来释放内存以及任何已分配/锁定的资源,例如文件/打印机,或者可能是任何其他资源。
您还可以使用 object_name->方法名来调用任何其他对象的公共方法。
【讨论】: