一旦我啓動了一個函數,我將在DB上設置一個標記爲TRUE
。對錯誤執行函數php
,我需要將其設置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
}
}
正如你可以看到它在正常情況下工作,但如果//其他代碼段遇到了一些錯誤,那麼它不會執行代碼的其餘部分。
的功能主要工作在後臺(而不是作爲一個命令行,它只是關閉連接,並開始在後臺執行)。
我怎樣才能確保close_db_value()
函數在腳本執行的終止?
一些可能性
- 是導致腳本終止
exit
上//其他代碼部分地方叫- PHP
max_execution_time
超過 - 力殺 一些嚴重錯誤
請幫忙。
無論是否存在致命錯誤,try {...} finally {...}塊總是應該執行finally塊。我不知道它是否會在後三種情況下執行。參見[文檔](http://php.net/manual/en/language.exceptions.php)。 – Sumurai8
@ Sumurai8它不是,最後一個是有問題的。事實是腳本可能會在後臺運行大約1小時,而我的託管提供商不會這樣。 :) – Red