我可以信任 PHP __destruct() 方法被调用吗?

2022-08-30 11:37:34

在 PHP5 中,是否保证为每个对象实例调用 __destruct() 方法?程序中的异常可以阻止这种情况发生吗?


答案 1

还值得一提的是,在具有自己的析构函数的子类的情况下,不会自动调用父析构函数。

如果父类执行任何必需的清理操作,则必须从子类 __destruct() 方法显式调用 parent::__destruct()。


答案 2

当释放所有引用或脚本终止时,将调用析构函数。我假设这意味着脚本何时正确终止。我想说的是,关键异常并不能保证调用析构函数。

PHP文档有点薄,但它确实说析构函数中的异常会导致问题。


推荐