Maison >développement back-end >Problème PHP >Comment personnaliser les invites d'erreur en php
En PHP, vous pouvez personnaliser la gestion des erreurs via la fonction "set_error_handler()". La fonction de cette fonction est de spécifier une autre fonction comme fonction de gestion des erreurs. La syntaxe est telle que "set_error_handler(callable $error_handler). ...)".
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Comment personnaliser les invites d'erreur en php ?
PHP set_error_handler()
: Fonction de gestion des erreurs personnalisée
PHP fournit une fonction set_error_handler(), qui peut être utilisée pour spécifier une autre fonction comme fonction de gestion des erreurs. La syntaxe. est la suivante :
set_error_handler(callable $error_handler [, int $error_types = E_ALL | E_STRICT ])
Description du paramètre
1) $error_handler est un nom de fonction défini par l'utilisateur. En plus du nom de la fonction, vous pouvez également transmettre NULL pour réinitialiser le gestionnaire. état par défaut. Vous pouvez également transmettre un tableau d'objets de référence et de noms de méthodes d'objet.
Le format de la fonction définie par l'utilisateur est le suivant :
error_handler(int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]])
où :
Le premier paramètre $errno représente le niveau d'erreur et est de type entier
Le deuxième paramètre $errstr représente les informations d'erreur, qui est un type de chaîne Le troisième paramètre $errfile est un paramètre facultatif, qui représente le nom du fichier où l'erreur s'est produite, et est une chaîne ; type;Le quatrième paramètre $errline est également un paramètre facultatif, indiquant le numéro de ligne où l'erreur s'est produite, et est un type entier Le cinquième paramètre $errcontext est également un paramètre facultatif ; (obsolète dans PHP7.2.0 ultérieurement), représente un tableau de tables de symboles actives lorsque l'erreur s'est produite. C'est-à-dire que $errcontext contiendra un tableau de toutes les variables dans la portée où l'erreur a été déclenchée. Le gestionnaire d'erreurs de l'utilisateur ne doit pas modifier le contexte d'erreur. Remarque : Si la fonction set_error_handler() renvoie FALSE, le gestionnaire d'erreurs standard continuera à être appelé. 2) Le paramètre $error_types est tout comme le error_reporting du fichier de configuration php.ini qui permet de contrôler l'affichage des erreurs. Ce paramètre peut être utilisé pour bloquer le déclenchement de $error_handler. Sans ce masque, $error_handler sera appelé à chaque erreur, quelle que soit la manière dont $error_reporting est défini. Si un gestionnaire d'erreurs a été défini auparavant, le nom du programme est renvoyé ; s'il s'agit d'un gestionnaire d'erreurs intégré, NULL est renvoyé. Si une fonction de rappel non valide est spécifiée, NULL sera également renvoyé. Si le gestionnaire d'erreurs précédent était une méthode de classe, cette fonction renvoie un tableau indexé avec les noms de classe et de méthode. [Exemple] Personnalisez une fonction de gestion des erreurs et utilisez-la pour gérer les erreurs dans le programme.
<?php function error_handler($errno, $errstr, $errfile, $errline ) { echo "error number:".$errno."<br/>"; echo "error msg:".$errstr."<br/>"; echo "error file:".$errfile."<br/>"; echo "error line:".$errline."<br/>"; die('something error'); } set_error_handler("error_handler"); strpos(); ?>Les résultats d'exécution sont les suivants :
error number:2 error msg:strpos() expects at least 2 parameters, 0 given error file:D:\WWW\index.php error line:10 something errorRemarque : utilisez cette méthode pour la gestion des erreurs. Si l'exécution du programme n'est pas terminée dans la fonction de gestion des erreurs, le programme continuera. exécutez la ligne suivante où l'erreur s'est produite, la fonction die() doit donc être utilisée pour terminer le programme. Il convient également de noter que cette méthode de gestion des erreurs ne peut pas prendre en charge tous les niveaux d'erreurs du programme. Les erreurs dans les parties E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING et E_STRICT seront affichées dans leur forme originale. sortir. set_error_handler() AdvancedLe mécanisme de gestion des exceptions de PHP n'est pas parfait et ne peut pas lancer automatiquement d'exceptions. Les utilisateurs peuvent également utiliser set_error_handler() pour traiter les exceptions comme des erreurs, afin que les utilisateurs puissent utiliser des fonctions de gestion des erreurs personnalisées. pour détecter automatiquement les exceptions. [Exemple] Utilisez une fonction de gestion des erreurs personnalisée pour intercepter automatiquement les exceptions.
<?php function error_handler($errno, $errstr, $errfile, $errline ) { echo "error number:".$errno."<br/>"; echo "error msg:".$errstr."<br/>"; echo "error file:".$errfile."<br/>"; echo "error line:".$errline."<br/>"; die('something error'); } set_error_handler("error_handler"); /* 触发异常 */ try { $a = 5/0; echo $a; } catch(Exception $e) { echo $e->getMessage(); } ?>Les résultats d'exécution sont les suivants :
error number:2 error msg:Division by zero error file:D:\WWW\index.php error line:12 something errorLorsque le programme s'exécute avec l'instruction $a = 5/0 à la ligne 12, le programme interceptera automatiquement cette exception et utilisera l'utilisateur. -fonction définie pour le traitement. Apprentissage recommandé : "
Tutoriel vidéo 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!