什么时候在php中使用析构函数?

php
2022-08-30 14:01:26

析构函数的主要用途是什么?

你能举出任何例子,说明当一个对象被删除时,我可能想要运行什么吗?


答案 1

它给了物体一个准备被杀死的机会。这可能意味着手动清理、状态持久性等。

例如,模型可能希望将其所有当前属性保存回数据库中。

或者,数据库对象本身可能希望关闭它用于与数据库服务器通信的套接字。


答案 2

因此,您可能知道构造函数的作用。如果设置了构造函数,则析构函数将进行清理。下面是来自 PHP 站点的一个示例:

<?php
class my_class {
  public $error_reporting = false;

  function __construct($error_reporting = false) {
    $this->error_reporting = $error_reporting;
  }

  function __destruct() {
    if($this->error_reporting === true) $this->show_report();
    unset($this->error_reporting);
  }
?>

这是有关该主题的PHP文档的链接。


推荐