Maison >développement back-end >Problème PHP >Quels sont les niveaux d'erreur en PHP ?
Les niveaux de rapport d'erreur PHP sont : 1. Erreur d'exécution fatale E_ERROR, généralement irrécupérable ; 2. Avertissement d'exécution E_WARNING (erreur non fatale) ; 3. Erreur d'analyse de syntaxe au moment de la compilation 4. Processus de démarrage d'initialisation E_CORE_ERROR Erreurs fatales qui se produisent ; dans ; 5. Avertissements E_CORE_WARNING (erreurs non fatales) qui se produisent pendant le processus de démarrage d'initialisation ; 6. E_COMPILE_ERROR 7. E_COMPILE_WARNING, etc.
L'environnement d'exploitation de ce tutoriel : système Windows7, version PHP8, ordinateur DELL G3
Dans le développement de notre programme, nous rencontrons souvent des erreurs d'exécution de programme, et PHP donnera des instructions en fonction du niveau d'erreur du programme . Donnez différentes invites. Par exemple, des avertissements, des erreurs, etc., mais ces erreurs peuvent être définies. S'il ne s'agit que de petites erreurs, nous pouvons empêcher que ces erreurs soient signalées.
Les niveaux d'erreur en php sont :
1 |
E_ERROR E_ERROR (integer)
|
致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。 | ||||||||||
2 |
E_WARNING (integer)
|
运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。 | ||||||||||
4 |
E_PARSE (integer)
|
编译时语法解析错误。解析错误仅仅由分析器产生。 | ||||||||||
8 |
E_NOTICE (entier)
| Opération fatale Temps erreur. Ce type d'erreur est généralement une situation irrécupérable, comme un problème causé par l'allocation de mémoire. La conséquence est que le script se termine et ne continue pas à s'exécuter. |||||||||||
16 |
E_CORE_ERROR E_CORE_ERROR (integer) |
在PHP初始化启动过程中发生的致命错误。该错误类似E_ERROR ,但是是由PHP引擎核心产生的。 |
since PHP 4 | |||||||||
32 |
E_CORE_WARNING (integer) |
PHP初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING ,但是是由PHP引擎核心产生的。 |
since PHP 4 | |||||||||
64 |
E_COMPILE_ERROR (integer) |
致命编译时错误。类似E_ERROR , 但是是由Zend脚本引擎产生的。 |
since PHP 4 | |||||||||
128 |
E_COMPILE_WARNING (integer) |
编译时警告 (非致命错误)。类似 E_WARNING ,但是是由Zend脚本引擎产生的。 |
since PHP 4 | |||||||||
256 |
E_USER_ERROR (integer) |
用户产生的错误信息。类似 E_ERROR (integer)
|
Erreur fatale survenue lors du démarrage de l'initialisation de PHP. Cette erreur est similaire à E_ERROR 🎜, mais est générée par le cœur du moteur PHP. 🎜 |
depuis PHP 4🎜🎜 | ||||||||
Avertissement (erreur non fatale) qui se produit lors du démarrage de l'initialisation de PHP. Similaire à 🎜E_WARNING 🎜, mais généré par le cœur du moteur PHP. 🎜 |
depuis PHP 4🎜🎜 | |||||||||||
Erreur fatale à la compilation. Similaire à 🎜E_ERROR 🎜, mais généré par le moteur de script Zend. 🎜 |
depuis PHP 4🎜🎜 | |||||||||||
Avertissement lors de la compilation (erreur non fatale). Similaire à 🎜E_WARNING 🎜, mais généré par le moteur de script Zend. 🎜 |
depuis PHP 4🎜🎜 | |||||||||||
Message d'erreur généré par l'utilisateur. Similaire à 🎜E_ERROR 🎜, mais l'utilisateur utilise la fonction PHP 🎜trigger_error()🎜 dans le code. généré. |
depuis PHP 4 | |||||||||||
512 |
E_USER_WARNING E_USER_WARNING (integer) |
用户产生的警告信息。类似 E_WARNING , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。 |
since PHP 4 | |||||||||
1024 |
E_USER_NOTICE (integer) |
用户产生的通知信息。类似 E_NOTICE , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。 |
since PHP 4 | |||||||||
2048 |
E_STRICT (integer)
|
启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。 | since PHP 5 | |||||||||
4096 |
E_RECOVERABLE_ERROR (integer) |
可被捕捉的致命错误。 它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。 如果该错误没有被用户自定义句柄捕获,将成为一个 E_ERROR 从而脚本会终止运行。 |
since PHP 5.2.0 | |||||||||
8192 | E_DEPRECATED (entier)Message d'avertissement généré par l'utilisateur. Similaire à |
, mais l'utilisateur utilise la fonction PHP dans le code trigger_error()🎜 à générer. 🎜🎜depuis PHP 4🎜🎜E_USER_NOTICE 🎜(integer🎜)🎜🎜Notifications générées par l'utilisateur information. Similaire à 🎜E_NOTICE 🎜, mais l'utilisateur utilise la fonction PHP dans le code trigger_error()🎜 à générer. 🎜🎜depuis PHP 4🎜🎜E_STRICT 🎜🎜 (entier)🎜🎜🎜Activez les suggestions de PHP pour les modifications du code afin de garantir la meilleure interopérabilité et la compatibilité ascendante du code. 🎜🎜depuis PHP 5🎜🎜E_RECOVERABLE_ERROR 🎜(integer🎜)🎜🎜peut être capturé Fatal erreur. Cela indique qu'une erreur potentiellement dangereuse s'est produite, mais n'a pas rendu le moteur PHP instable. Si l'erreur n'est pas détectée par un gestionnaire défini par l'utilisateur, elle deviendra un 🎜E_ERROR 🎜 et le le script se terminera. 🎜🎜depuis PHP 5.2.0🎜🎜E_DEPRECATED 🎜🎜(entier)🎜🎜🎜Notification d'exécution. Lorsqu'il est activé, un avertissement sera émis concernant le code qui pourrait ne pas fonctionner correctement dans les versions futures.depuis PHP 5.3.0 |
16384 |
|
E_USER_DEPRECATED E_USER_DEPRECATED (integer)用户产少的警告信息。 类似 |
E_DEPRECATED , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。since PHP 5.3.0 |
30719 |
|
E_ALL (integer)
E_STRICT (integer)Message d'avertissement pour que les utilisateurs génèrent moins. Similaire à |
| , mais l'utilisateur utilise la fonction PHP dans le code trigger_error()
E_DEPRECATED |
E_ALL
🎜 (entier)🎜🎜E_STRICT
🎜Tous les messages d'erreur et d'avertissement lors des sorties. 🎜🎜30719 en PHP 5.3.x, 6143 en PHP 5.2.x, 2047 auparavant🎜🎜🎜🎜Comment définir le niveau de rapport d'erreurs en PHP :
1. Modifiez le fichier de configuration PHP php.ini
Après avoir défini error_reporting de cette manière, redémarrez le serveur Web et cela prendra effet définitivement.
Ouvrez le fichier de configuration php.ini et vérifiez la valeur par défaut du niveau de rapport d'erreurs error_reporting, comme suit :
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT1.
Cela signifie signaler toutes les erreurs, à l'exception de E_DEPRECATED et E_STRICT.
Changez-le par :
error_reporting=E_ALL & ~E_NOTICE1.
Cela signifie signaler toutes les erreurs sauf E_NOTICE. Il s'agit également du niveau de rapport d'erreurs le plus couramment utilisé. Il ne signalera pas les erreurs de la classe attention (comme l'utilisation d'une variable non définie).
Enregistrez et cela prendra effet après le redémarrage du serveur Web.
2. Utilisez la fonction error_reporting()
Après avoir défini de cette manière, elle peut prendre effet immédiatement. Mais seulement dans la zone après l’appel de la fonction error_reporting() dans le script actuel.
int error_reporting ([ int $level ] )1.
Le paramètre peut être un entier ou l'identifiant de constante correspondant. Il est recommandé d'utiliser la forme constante. La valeur de retour est la valeur (valeur entière) du niveau de rapport d'erreurs en vigueur à l'emplacement actuel.
Remarque : La valeur par défaut de display_errors dans le fichier de configuration php.ini est On, ce qui signifie que les invites d'erreur sont affichées. Si elle est définie sur Off, toutes les invites d'erreur seront désactivées.
Utilisez error_reporting(0) ou ajoutez @
devant la fonction pour supprimer la sortie d'erreur afin d'empêcher les messages d'erreur de divulguer des informations sensibles.
Niveau de paramètre
Nouveau niveau de rapport d'erreur. Peut être un masque de bits ou une constante nommée.
Il est recommandé d'utiliser des constantes nommées pour assurer la compatibilité avec les futures versions. En raison de l'ajout de niveaux d'erreur et de l'augmentation de la plage de valeurs entières, les anciens niveaux d'erreur basés sur des entiers ne se comporteront pas toujours comme prévu.
niveau valeurs possibles (niveau de rapport d'erreurs en php)
Commun : un total d'environ 15
15 correspondent exactement aux 15 bits du binaire.
Il convient de noter que les champs du tableau ci-dessus ne sont pas statiques. Différentes versions de PHP peuvent avoir des valeurs différentes
N'importe quel nombre des options ci-dessus peut être connecté avec "OR" (utilisez OR ou |), de sorte que vous puissiez le faire. peut signaler toutes les erreurs requises à tous les niveaux.
Par exemple, le code suivant désactive les erreurs et les avertissements définis par l'utilisateur, effectue certaines opérations, puis revient au niveau d'erreur d'origine :
Exemple :
<?php error_reporting(0); //禁用错误报告 error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误 error_reporting(E_ALL); //报告所有错误 error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE报告所有错误,是在php.ini的默认设置 error_reporting(-1); //报告所有 PHP 错误 error_reporting(3); //不报E_NOTICE error_reporting(11); //报告所有错误 ini_set('error_reporting', E_ALL); // 和 error_reporting(E_ALL); 一样 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。 ?>
Relation de conversion :
Vous pouvez voir que E_ALL n'affiche pas toutes les erreurs. Le 12ème bit est 0. Le poids de ce bit est de 2 à la puissance 11, soit 2048. En fait, il est la valeur de E_STRICT, donc E_ALL affiche tous les niveaux d'erreur sauf E_STRICT.
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!