2009-08-08 64 views
7

当脚本被die()exit()终止时,我想调用一个函数。
我的愿望是自动执行此操作,所以我不必一直致电功能。脚本终止时的调用函数

这可能吗?

回答

1

我不知道这是否会有所帮助,但你可以做的周围用另一种方式。

定义一个函数是这样的:

function terminate() // you might want to have parameters here to handle different cases 
{ 
    the_function_to_call(); 
    die(); // or exit(); 
} 

内。然后你的代码调用terminate(),而不是die()exit()

4

类的__destruct()magic方法也在关闭时运行,除非您先取消设置类对象。尽管如果你只想注册一个正常的函数,Scharrels的响应更简单。请参阅http://docs.php.net/manual/en/language.oop5.decon.php#language.oop5.decon.destructor

在关机中运行脚本时需要注意的一件事情是,在将输出发送到浏览器后发生这种情况,因此您不会在屏幕上显示任何错误。确保记得将错误记录到文件中以进行关闭功能!

+0

我知道__destruct()销毁对象,但这并不能帮助我。我有一个会话操作类。我不想在对象上使用__destruct()的原因是,因为我想在最后正确保存会话数据,并且在脚本处理期间可以销毁会话对象。无论如何;) – usoban 2009-08-08 13:12:48

+3

如果这是会话数据管理,你应该看看session_set_save_handler() - 它有它自己的系统,一个写处理程序,用于在关机时保存会话数据,而无需自己注册关闭功能。请参阅http://php.net/manual/en/function.session-set-save-handler.php – simonrjones 2009-08-08 13:39:36