我是OOP编程的新手。所以我有关于__destruct函数的2个问题。
我可以从__destruct调用另一个对象函数,还是其他函数已经未声明?例如:
function __destruct()
$this->save();
我还可以在普通代码中调用__destruct函数吗?例如:
$object_name->__destruct();
答案 0 :(得分:3)
是的,我认为这样可行,虽然在垃圾收集器内调用save()
调用会有点违反直觉(而且设计很可怕。)
是的,如果您愿意,或者当没有更多对该对象的引用时,PHP会自动调用它。
答案 1 :(得分:0)
首先__destruct是与__construct
相同的对象的析构函数当您创建Object(__construct将调用)并删除或销毁对象(将调用__destruct)时,上述两个函数都会自动调用
您可以从构造函数或析构函数中调用N个函数。构造函数的主要目的是初始化对象并分配适当的内存位置。
如果反向使用析构函数来释放内存以及任何已分配/锁定的资源(如文件/打印机),或者可能是任何其他资源。
您还可以使用object_name->方法名称调用任何其他对象的Public方法。