Maison >développement back-end >Problème PHP >php change le niveau d'erreur

php change le niveau d'erreur

PHPz
PHPzoriginal
2023-05-07 10:58:08803parcourir

Lors du développement avec PHP, nous rencontrons souvent diverses erreurs. Ces messages d'erreur nous aident généralement à dépanner et à résoudre rapidement les problèmes dans le code. Cependant, dans un environnement de production, nous ne souhaitons peut-être pas exposer ces erreurs aux utilisateurs. À cette fin, PHP fournit des fonctions de contrôle du niveau d’erreur, nous permettant de contrôler librement la manière dont les erreurs sont affichées.

Les niveaux d'erreur de PHP sont divisés en 8 niveaux, qui sont :

  1. E_ERROR : erreur fatale, qui doit être résolue, sinon le code ne peut pas continuer à s'exécuter
  2. E_WARNING : erreur d'avertissement, qui n'entraînera pas l'arrêt du code ; en cours d'exécution, mais doit être réparé ;
  3. E_PARSE : erreurs d'analyse de syntaxe, généralement causées par des erreurs de syntaxe du code ;
  4. E_NOTICE : erreurs de notification, qui n'entraîneront pas l'arrêt de l'exécution du code, mais doivent être réparées ; Erreurs fatales du noyau, telles que les erreurs qui se produisent lors de l'initialisation du noyau PHP ;
  5. E_CORE_WARNING : erreur d'avertissement du noyau ;
  6. E_COMPILE_ERROR : erreur de compilation fatale, telle que le fichier inclus n'existe pas ;
  7. E_COMPILE_WARNING : erreur d'avertissement de compilation.
  8. Le niveau d'erreur par défaut de PHP est E_ALL, ce qui signifie que tous les niveaux d'invites d'erreur sont activés. Ce niveau est très utile lors du développement et nous aide à trouver et résoudre les bugs le plus tôt possible. Mais dans un environnement de production, nous ne souhaitons généralement pas exposer les informations d'erreur aux utilisateurs. Dans ce cas, nous pouvons contrôler les informations d'erreur en modifiant le niveau d'erreur.

Il existe deux manières de modifier le niveau d'erreur : utiliser la fonction ini_set pour le configurer dans le code, ou modifier le fichier de configuration PHP php.ini. Ce qui suit est une introduction aux deux méthodes.

Utilisez la fonction ini_set pour modifier le niveau d'erreur
  1. La fonction ini_set nous permet de modifier temporairement les éléments de configuration PHP dans le code. Nous pouvons utiliser cette fonction pour modifier le niveau d'erreur de PHP. L'exemple de code suivant montre comment définir le niveau d'erreur sur E_ALL & ~E_NOTICE & ~E_WARNING, c'est-à-dire désactiver les notifications et les invites d'avertissement :
// 设置错误级别为E_ALL & ~E_NOTICE & ~E_WARNING
ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_WARNING);

// 执行代码
echo $undefinedVariable;

Dans le code ci-dessus, nous utilisons d'abord la fonction ini_set pour définir le niveau d'erreur sur E_ALL & ~E_NOTICE & ~ E_WARNING, puis j'ai intentionnellement accédé à une variable non définie $undefinedVariable. Puisque nous avons désactivé les notifications et les avertissements, PHP ne nous demandera pas l'erreur de notification Variable non définie : undéfiniVariable. Cependant, si nous définissons le niveau d'erreur sur E_ALL, lors de l'accès à une variable non définie, PHP générera une erreur comme celle-ci :

Notice: Undefined variable: undefinedVariable in /path/to/file.php on line 5

Par conséquent, en modifiant le niveau d'erreur, nous pouvons contrôler si PHP affiche certains types de messages d'erreur.

Modifiez le fichier de configuration PHP php.ini pour changer le niveau d'erreur
  1. En plus d'utiliser la fonction ini_set pour configurer le niveau d'erreur dans le code, nous pouvons également le configurer dans le fichier de configuration php.ini. Le fichier de configuration php.ini prend effet pour l'ensemble du système PHP et les valeurs des éléments de configuration sont accessibles dans chaque fichier PHP. Voici les éléments de configuration liés au niveau d'erreur dans le fichier de configuration php.ini :
; 显示所有错误
error_reporting = E_ALL

; 显示 E_NOTICE、E_WARNING 和 E_ERROR 级别的错误
error_reporting = E_ERROR | E_WARNING | E_NOTICE

; 显示所有错误,除了 E_NOTICE 级别的错误
error_reporting = E_ALL & ~E_NOTICE

Afin de protéger l'environnement de production, nous définissons généralement le niveau d'erreur sur E_ALL & ~E_NOTICE & ~E_WARNING. Cela désactivera les notifications et les avertissements et affichera uniquement les erreurs fatales et les erreurs d'analyse.

Résumé

Pendant le processus de développement, nous souhaitons rechercher et résoudre les erreurs le plus tôt possible, il est donc très utile d'activer toutes les invites de niveau d'erreur par défaut. Cependant, dans un environnement de production, nous ne souhaitons généralement pas exposer les messages d'erreur aux utilisateurs. Nous devons donc modifier le niveau d'erreur pour contrôler la manière dont les messages d'erreur sont affichés. Nous pouvons réaliser cette fonction via la fonction ini_set ou modifier le fichier de configuration PHP php.ini. En utilisation réelle, nous devons configurer de manière flexible le niveau d'erreur en fonction des besoins réels afin de faciliter le dépannage et la résolution des erreurs en temps opportun.

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