2012-12-04 10 views
5

Ho metodo, in questo metodo può essere accaduto errore fatale, per la cattura di questo errore faccio questaCome passare argomenti al metodo chiamabile specificamente per 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 

    } 


} 

Okay, questo capisce, ma ho bisogno di passare argomenti terribleFunction-shutDownFunction. Come farlo?

+0

Maby siete alla ricerca di [call_user_func_array] (http://php.net/manual/en/function.call-user-func-array.php) –

+0

Inoltre, non puoi prendere errori fatali. Sono fatali per una ragione. –

risposta

10

Per prima cosa è necessario specificare che shutDownFunction deve accettare un parametro.

function shutDownFunction($var)

Poi si può chiamare register_shutdown_function come modo

register_shutdown_function(array($this, 'shutdownFunction'), $myVar);

documentazione è here e ci sono esempi nei commenti.

0

Si dovrebbe usare solo register_shutdown_function e non usarlo solo all'interno di un metodo per rilevare gli errori in quel metodo. Per errore uso la cattura di un try, catch, finally

See: http://php.net/manual/en/language.exceptions.php

0

È possibile controllare register_shutdown_function documentazione. C'è un secondo argomento opzionale parameter che viene passato al tuo shutDownFunction(). Questa funzione è possibile definire in questo modo:

function shutDownFunction($args) { 
    //do whatever you want with $args 
} 
Problemi correlati