完成PHP脚本时调用对象方法

时间:2012-04-19 11:02:23

标签: php object

如果我已经实例化了一个对象,它是否有可能在php关闭之前触发方法? 示例

class foo{
   public function sayBye(){
       echo 'bye';
   }
}
$obj = new foo();
$obj2 = new foo();
die();

有没有办法可以自动触发sayBye功能? (换句话说,代码会输出“byebye”)

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

如何在析构函数中调用sayBye()

http://php.net/manual/en/language.oop5.decon.php

答案 2 :(得分:1)

  

如果我已经实例化了一个对象,它是否有可能在php关闭之前触发方法?示例

有。有关详细信息,请查看__destruct()。但请注意,这可靠:如果您的脚本包含die(),未捕获的异常,致命错误,则__destruct()被叫。

你可以使用它,但明智地使用它;)

编辑:当您致电__destruct( )时,系统会显示exit;。尽管如此,警告仍然适用于其他情况。

答案 3 :(得分:0)

我能看到的最简单的方法是向你的班级添加一个析构函数。

class foo{
   public function sayBye(){
       echo 'bye';
   }

   public function __destruct(){
       $this->sayBye();
   }
}

这会怎么做?当脚本执行完成或未设置($ object)时,您将在__destruct()中执行代码。它可能不适用于die(),因为这将在脚本完成之前匆忙停止脚本。