2009-12-27 5 views
3

J'essaie d'enregistrer une fonction d'arrêt pour enregistrer une erreur fatale. Nice stuff, si elle travaillerait pour ma classe ...Pourquoi PHP se plaint de mon register_shutdown_function()?

l'intérieur d'une méthode que je fais:

register_shutdown_function(array($this, 'handleFatalError')); 

handleFatalError est pas statique, et il est public:

public function handleFatalErrors() { 
    if(is_null($e = error_get_last()) === false) { 
     //mail('[email protected]', 'Error from auto_prepend', print_r($e, true)); 
    } 
} 

PHP dit:

Attention: register_shutdown_function() [function.register-arrêt-function]: rappel d'arrêt non valide 'ErrorManager :: handleFatalError' passé en ...

Pourquoi est-ce un rappel non valide?

Répondre

11

Parce que vous essayez d'enregistrer « handleFatalError » et la méthode est appelée « handleFatalErrors ».

Euh ... c'est vraiment ça.

+0

vous avez raison homme. % $ § !!! – openfrog

+0

@middaparka Même si je reçois cette erreur. Mais je n'ai fait aucune faute de frappe. Quoi d'autre pourrait être la possibilité que cela se produise? –

0

La fonction d'arrêt est probablement appelé après que tous les objets ont été déconstruit, avez-vous essayé:

register_shutdown_function(array('ErrorManager', 'handleFatalError')); 
+0

J'ai eu une faute de frappe laide dans mon code. Zut. – openfrog

5

On dirait qu'il devrait être:

register_shutdown_function(array($this, 'handleFatalErrors')); 

Notez les s sur handleFatalErrors

Questions connexes