我有一个方法,在这个方法中可能会发生致命错误,为了捕捉这个错误,我做了这个
class a {
function shutDownFunction() {
$error = error_get_last();
if ($error['type'] == 1) {
echo "this is fatal error";
}
}
function terribleFunction () {
register_shutdown_function(array($this,'shutdownFunction'));
// here is code, wich may causes fatal error
}
}
好的,这可以理解,但我需要将参数从terribleFunction
传递到shutDownFunction
。如何制作?
首先需要指定shutDownFunction
应该接受一个参数。
function shutDownFunction($var)
然后你可以像一样调用register_shutdown_function
register_shutdown_function(array($this, 'shutdownFunction'), $myVar);
这里有文档,评论中也有示例。
您应该只使用一个register_shutdown_function,而不是仅在方法内部使用它来捕获该方法中的错误。对于错误捕获,使用try,catch,finally block
请参阅:http://php.net/manual/en/language.exceptions.php
您可以查看register_shutdown_function文档。还有第二个可选参数parameter
,它被传递给您的shutDownFunction()
。这个函数你可以这样定义:
function shutDownFunction($args) {
//do whatever you want with $args
}