php ignore le mauvais code
May 06, 2023 pm 05:47 PMPHP est un langage de programmation Web très populaire. Sa puissance ne se reflète pas seulement dans sa flexibilité et sa facilité d'utilisation, mais également dans son mécanisme de gestion des erreurs. Lorsqu'une erreur se produit dans le code PHP, le script PHP génère un message d'erreur par défaut et arrête de s'exécuter, mais nous devons parfois ignorer ces erreurs et laisser le script continuer à s'exécuter. Alors, comment ignorer les erreurs en PHP ? Cet article vous le présentera en détail.
1. Niveaux d'erreur
En PHP, les erreurs sont divisées en différents niveaux, tels que les erreurs fatales, les erreurs graves, les avertissements, etc. Différents niveaux d'erreur seront traités différemment au moment de l'exécution. Les erreurs fatales arrêteront directement l'exécution du script, tandis que les erreurs et avertissements graves généreront des messages d'erreur mais n'arrêteront pas l'exécution du script. Différentes constantes d'erreur sont définies en PHP, qui correspondent à différents niveaux d'erreur. Voici les constantes d'erreur PHP courantes et leurs niveaux d'erreur correspondants :
- E_ERROR Erreur fatale
- E_WARNING Erreur non fatale
- E_PARSE Erreur d'analyse
- E_NOTICE Erreur de note
- E_DEPRECATED Erreur de dépréciation
- E_STRICT Stric t erreur
2 . Gestion des erreurs
PHP fournit certaines fonctions pour gérer les erreurs, telles que la fonction de journal des erreurs error_log(), la fonction d'exception throw(), la fonction d'affichage des messages d'erreur error_reporting(), etc. Bien entendu, nous pouvons également personnaliser les fonctions de gestion des erreurs. Ce qui suit est une brève introduction à l’utilisation de ces fonctions.
(1) La fonction error_log()
error_log() est utilisée pour enregistrer les informations d'erreur dans le fichier journal des erreurs du serveur, tel que le fichier error_log d'Apache. Cette fonction a trois paramètres :
bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )
$message est le message d'erreur, $message_type est le niveau d'erreur (la valeur par défaut est 0, qui est ignorée), $destination est le chemin du fichier journal des erreurs et $extra_headers peut définir des informations d'en-tête supplémentaires. pour le courrier électronique.
(2) La fonction throw()
throw() est utilisée pour lever une exception, c'est-à-dire pour arrêter directement l'exécution du programme et afficher un message d'erreur. Cette fonction a un paramètre, qui est une instance de l'objet exception.
(3) La fonction error_reporting()
error_reporting() est utilisée pour définir le niveau de rapport d'erreurs. Elle a un paramètre, qui est une constante d'erreur ou le résultat de l'opération OU au niveau du bit de plusieurs constantes d'erreur.
Voici un exemple simple montrant comment utiliser la fonction error_reporting() pour ignorer les erreurs de niveau E_NOTICE :
error_reporting(E_ALL & ~E_NOTICE);
En effectuant une opération ET au niveau du bit sur E_ALL avec ~E_NOTICE, vous pouvez obtenir tous les niveaux d'erreur sauf E_NOTICE. Après ce paramétrage, le script PHP ignorera les erreurs de niveau E_NOTICE.
(4) Fonction de gestion des erreurs personnalisée
PHP nous permet de personnaliser les fonctions de gestion des erreurs, afin que nous puissions personnaliser le chemin du fichier journal des erreurs, la méthode de sortie des erreurs, etc. Nous devons utiliser la fonction set_error_handler pour définir la fonction de gestion des erreurs. Cette fonction a un paramètre, qui est le nom de la fonction de traitement personnalisée.
Voici un exemple simple :
function custom_error_handler($errno, $errstr, $errfile, $errline) { error_log($errstr . "in" . $errfile . " on line " . $errline); return true; } set_error_handler("custom_error_handler");
Cette fonction de gestion des erreurs personnalisée écrit les informations sur l'erreur dans le fichier journal des erreurs du serveur et renvoie une valeur vraie, indiquant que l'erreur a été traitée.
3. Ignorer les erreurs
Voyons maintenant comment ignorer les erreurs en PHP. La méthode est très simple, utilisez simplement le symbole @ pour ignorer les erreurs que vous ne souhaitez pas gérer. Par exemple :
$count = @file_get_contents("file.txt");
Cette instruction lira le contenu du fichier "file.txt" et l'attribuera à la variable $count Cependant, si une erreur se produit lors de la lecture du fichier, telle que le fichier n'existe pas ou n'est pas. avoir l'autorisation de lire, etc., puis ajouter. Vous pouvez ignorer l'erreur en ajoutant le symbole @ et autoriser le script à continuer de s'exécuter.
Il convient de noter que l'utilisation du symbole @ pour ignorer les erreurs rendra le code moins sûr, car cela peut conduire à des erreurs difficiles à trouver, telles que des variables non initialisées ou des paramètres de fonction incorrects, etc. Par conséquent, vous ne devez utiliser le symbole @ que si vous êtes sûr que ces erreurs peuvent être ignorées.
4. Résumé
En PHP, la façon d'ignorer les erreurs est très simple, il suffit d'utiliser le symbole @. Mais l'utilisation du symbole @ peut provoquer des erreurs difficiles à trouver, nous devrions donc essayer d'éviter de l'utiliser. Si vous souhaitez ignorer les erreurs, vous devez utiliser la fonction set_error_handler() pour personnaliser la fonction de gestion des erreurs, ou utiliser la fonction error_reporting() pour définir le niveau de rapport d'erreurs. Cela nous permet de gérer les erreurs dans les programmes PHP de manière plus flexible et plus sûre.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP

La déduplication PHP Array peut-elle profiter de l'unicité du nom clé?

Quelles sont les dernières normes de codage PHP et les meilleures pratiques?

Comment puis-je travailler avec les extensions de PHP et PECL?

Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP?

La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance?

Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP

Comment utiliser la réflexion pour analyser et manipuler le code PHP?
