如何针对register_shutdown_function特别传递参数给可调用方法?

7
我有一个方法,在这个方法中可能会发生致命错误,为了捕捉这个错误,我做了以下处理:
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。怎么做呢?


也许你正在寻找 call_user_func_array - Ron van der Heijden
此外,您无法捕获致命错误。它们之所以被称为致命错误,是有原因的。 - Berry Langerak
3个回答

15
首先,您需要明确指定 shutDownFunction 函数应接受一个参数。 function shutDownFunction($var) 然后,您可以这样调用 register_shutdown_functionregister_shutdown_function(array($this, 'shutdownFunction'), $myVar); 文档在这里,并且有注释中的示例。

0
你可以查看 register_shutdown_function 文档。有第二个可选参数 parameter 传递到你的 shutDownFunction()。你可以像这样定义这个函数:
function shutDownFunction($args) {
   //do whatever you want with $args
}

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接