Maison >développement back-end >Problème PHP >php ignore le mauvais code

php ignore le mauvais code

PHPz
PHPzoriginal
2023-05-06 17:47:07714parcourir

PHP 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 :

  1. E_ERROR Erreur fatale
  2. E_WARNING Erreur non fatale
  3. E_PARSE Erreur d'analyse
  4. E_NOTICE Erreur de note
  5. E_DEPRECATED Erreur de dépréciation
  6. 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!

Déclaration:
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