我启动了一个功能后,我在DB上设置了一个标记为TRUE
。
我需要在函数末尾设置FALSE
。
例如:
Class Preprocessor extends Machine{
function process(){
$this->db->setValue(TRUE); //Setting DB flag to TRUE
//OTHER CODES
$this->close_db_value(); // Setting DB flag to FALSE
}
function close_db_value(){
$this->db->setValue(FALSE); //Setting DB flag to FALSE
}
}
正如您可以看到它在正常情况下可以正常工作,但是如果在// OTHER CODES部分遇到一些错误,那么它将不会执行其余的代码。
该函数主要在后台工作(但不是作为命令行,它只是关闭连接并开始在后台执行)。
如何确保在脚本终止时执行close_db_value()
函数?
一些可能性
exit
在// @ OTHER CODE部分max_execution_time
已超出请帮忙。
答案 0 :(得分:1)
在PHP中使用set_error_handler()函数。将要调用的回调函数的名称作为第一个参数放在错误的情况下。将您想要作为触发器的错误级别(可选)作为第二个参数。
如果您希望处理所有其他类型的错误(SIGKILLs或强制退出除外),您还可以尝试使用register_shutdown_function() error_get_last()和switch-case语句以及各种类型的错误您希望处理的错误(E_NOTICE,E_DEPRECATED等)。
例如,
register_shutdown_function('shutdown_callback');
function shutdown_callback(){
$error_type = error_get_last();
switch($error_type){
case E_ERROR: break;
case E_WARNING: break;
}
}
答案 1 :(得分:0)
每次脚本结束或卸载对象时,__destruct();
魔术函数也会执行。