Maison > développement back-end > tutoriel php > Analyse de la fonction PHP register_shutdown_function

Analyse de la fonction PHP register_shutdown_function

不言
Libérer: 2023-03-23 12:00:01
original
1608 Les gens l'ont consulté

Cet article analyse et présente la fonction PHP register_shutdown_function. Les amis qui en ont besoin peuvent s'y référer.

Les scripts meurent souvent, et ils ne sont pas toujours jolis. l'utilisateur. Ou une page vierge (lorsque display_errors est désactivé). Il existe une fonction appelée register_shutdown_function en PHP qui nous permet de définir une autre fonction qui peut être appelée lorsque l'exécution est arrêtée C'est-à-dire. On dit que lorsque l'exécution de notre script est terminée ou s'arrête de manière inattendue, provoquant l'arrêt de l'exécution de PHP, notre fonction sera appelée Par conséquent, nous pouvons définir une variable sur false au début du script, puis le définir sur true à la fin du script permet à PHP de fermer la fonction de rappel pour vérifier si le script est complet. Si notre variable est toujours fausse, nous savons que la dernière ligne du script n'a pas été exécutée, elle doit donc l'avoir été. est mort quelque part lors de l'exécution du programme. J'ai préparé un exemple très basique pour montrer comment donner à l'utilisateur un retour approprié lorsqu'une erreur fatale doit être affichée. Vous pouvez désactiver l'affichage des erreurs fatales (Annotation : vous. peut définir display_errors et error_reporting), pour que l'exemple soit meilleur.

Copiez le code Le code est le suivant :


$clean = false;
function shutdown_func(){
global $clean;
if (!$clean){
die("pas un arrêt propre");
>
return false;
}
register_shutdown_function("shutdown_func");
$a = 1;
$a = new FooClass(); // Échouera avec une erreur fatale
$clean = true;
?>


Comme vous pouvez le voir, si la variable clean n'est pas définie sur true lorsque la fonction de rappel d'arrêt est en cours d'exécution, la fonction shutdown_func s'imprimera quelque chose. Cette chose peut être enveloppée dans une classe (n'utilisez pas de variables globales).
PHP fournit la fonction register_shutdown_function(), qui peut rappeler la fonction enregistrée avant la fin du script, c'est-à-dire la fonction qui est exécutée après. l'exécution du programme PHP est terminée.
register_shutdown_function Le mécanisme d'exécution est le suivant : PHP transfère la fonction à appeler en mémoire. Cette fonction est appelée à nouveau lorsque toutes les instructions PHP de la page ont été exécutées. Notez qu'à l'heure actuelle, il est appelé depuis la mémoire, et non depuis la page PHP, donc l'exemple ci-dessus ne peut pas utiliser de chemins relatifs car PHP a déjà supposé que la page d'origine n'existe pas. Il n’y a pas de chemin relatif du tout.
Remarque : register_shutdown_function signifie appeler la fonction une fois que toutes les instructions PHP ont été exécutées. Ne le comprenez pas comme un appel à la fonction lorsque le client ferme la page du navigateur de streaming.
Vous pouvez comprendre les conditions d'appel comme ceci :
1 Lorsque la page est forcée de s'arrêter par l'utilisateur
2 Lorsque le code du programme exécute un délai d'attente
. 3. Lorsque le code PHP est exécuté Une fois terminé, il y a des exceptions, des erreurs et des avertissements dans l'exécution du code
Recommandations associées :

Comment utiliser les variables statiques des fonctions PHP                                            >

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal