PHP - register_shutdown_function ()
La fonction register_shutdown_function () peut enregistrer une fonction pour exécution à l'arrêt.
Syntaxe
void register_shutdown_function( callable $callback [, mixed $parameter [, mixed $... ]] )
La fonction register_shutdown_function () peut enregistrer une fonction nommée par fonction à exécuter lorsque le traitement du script est terminé. Plusieurs appels à une fonction register_shutdown_function () peuvent être effectués, et chacun peut être appelé dans le même ordre que celui enregistré. Si nous appelons la fonction exit () dans une fonction d'arrêt enregistrée, le traitement peut s'arrêter complètement et aucune autre fonction d'arrêt enregistrée ne peut être appelée.
La fonction register_shutdown_function () ne renvoie aucune valeur. Si le rappel passé n'est pas appelable, une erreur de niveau "E_WARNING" peut être générée.
Exemple 1
<?php
function say_goodbye() {
echo "Goodbye!\n";
}
register_shutdown_function("say_goodbye");
echo "Hello!\n";
?>
Production
Hello!
Goodbye!
Exemple 2
<?php
function say_goodbye() {
if(connection_status() == CONNECTION_TIMEOUT) {
print "Script timeout!\n";
} else {
print "Goodbye!\n";
}
}
register_shutdown_function("say_goodbye");
set_time_limit(1);
print "Sleeping...\n";
sleep(1);
print "Done!\n";
?>
Production
Sleeping...
Done!
Goodbye!
Exemple 3
<?php
class TestDemo {
public function __construct() {
register_shutdown_function([$this, "f"], "hello");
}
public function f($str) {
echo "class TestDemo->f():" . $str;
}
}
$demo = new TestDemo();
echo "before" . PHP_EOL;
?>
Production
before
class TestDemo->f():hello