为什么PHP会抱怨我的register_shutdown_function()?

ope*_*rog 3 php

我尝试注册一个关闭函数来记录致命错误.好的东西,如果它适用于我的班级......

在方法中我这样做:

register_shutdown_function(array($this, 'handleFatalError'));
Run Code Online (Sandbox Code Playgroud)

handleFatalError不是静态的,它是公共的:

public function handleFatalErrors() {
    if(is_null($e = error_get_last()) === false) {
        //mail('your.email@example.com', 'Error from auto_prepend', print_r($e, true));
    }
}
Run Code Online (Sandbox Code Playgroud)

PHP说:

警告:register_shutdown_function()[function.register-shutdown-function]:传入无效的关闭回调'ErrorManager :: handleFatalError'...

为什么这是一个无效的回调?

Joh*_*ker 11

因为您正在尝试注册'handleFatalError',并且该方法被称为'handleFatalErrors'.

呃......真的.


jim*_*myi 5

看起来应该是:

register_shutdown_function(array($this, 'handleFatalErrors'));
Run Code Online (Sandbox Code Playgroud)

注意s handleFatalErrors