如何将参数传递给专门针对register_shutdown_function的可调用方法



我有一个方法,在这个方法中可能会发生致命错误,为了捕捉这个错误,我做了这个

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
}

相关内容

  • 没有找到相关文章

最新更新