0

我有一个聊天机器人,它将一些数据保存到用户发送的数据库中。在向用户发送响应后,我想将其保存到 db(一个缓慢的网络调用)。

我可以在 Python Tornado 中做到这一点,但我无法做到 PHP Apache。

用户将输入作为请求发送->我们处理它->我们将输出作为响应发送给用户->然后我们希望存储数据

  class A
  {
      function __construct()
        {
          echo "Hello World";
        }
      function __destruct()
        {
          sleep(15); //I want this to happen after response is being send
        }
      function calc()
        {
          echo "Progress World";
        }
  }
4

1 回答 1

0

__destruct在对象删除、对象超出范围或正常脚本结束时调用。如果脚本没有正常终止而是被终止,则可能根本不会调用析构函数。

如果您只想在特定点执行清理任务并确保它们得到处理,请使用 PHP 5.5 引入的finally子句

__destruct来自 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 文档。我希望这有帮助。

于 2013-11-07T08:03:56.357 回答