Niveau de rapport d'erreur de gestion des erreurs PHP
Niveau de rapport d'erreur
Type d'erreur
Captures d'écran d'affichage d'erreur les plus courantes de PHP, ce livre vous aide à résumer :
[Types d'erreur de niveau de maîtrise] Nous divisons les erreurs les plus couramment utilisées en trois types :
错误类型 | 说明 |
---|---|
E_ERROR | 错误,文件直接中断 |
E_WARNING | 警告,问题比较严重。但是还会继续向下运行 |
E_NOTICE | 提示,有些小问题不会影响到程序。常发生在项目未定义 |
E_PARSE | 编译时语法解析错误。解析错误仅仅由分析器产生。 |
E_ALL | 所有的错误 |
E_STRICT | 启用PHP对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。 |
E_DEPRECATED | 启用后将会对在未来版本中可能无法正常工作的代码给出警告。 |
Parmi les types ci-dessus :
l'erreur est la plus grave et doit être résolue. Sinon, le programme ne peut pas continuer à s'exécuter
l'avertissement est également très important. Tong doit également être résolu. Si c’est clair et intentionnel, il n’est pas nécessaire de s’en occuper.
avis Vous pouvez l'ignorer. Mais dans certaines entreprises, les normes des projets sont particulièrement élevées. Il doit également être résolu dans des projets présentant des exigences élevées. Parce que la notification affectera l’efficacité d’exécution de PHP. Cela se produit généralement lorsque la fonction n'est pas définie, etc.
Les erreurs d'analyse font référence aux erreurs grammaticales et aux fautes de frappe, qui doivent être résolues
Représente toutes les erreurs de tous types
[Comprendre le niveau des types d'erreurs] Parmi ces trois types, il existe d'autres éléments d'erreur qui doivent être compris :
错误类型 | 错误说明 |
---|---|
E_CORE_ERROR | 在PHP初始化启动过程中发生的致命错误。该错误类似E_ERROR,但是是由PHP引擎核心产生的 |
E_CORE_WARNING | PHP初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING,但是是由PHP引擎核心产生的。 |
E_COMPILE_ERROR | 致命编译时错误。类似E_ERROR,但是是由Zend脚本引擎产生的。 |
E_COMPILE_WARNING | 编译时警告(非致命错误)。类似E_WARNING,但是是由Zend脚本引擎产生的 |
E_USER_ERROR | 用户自定义错误 |
E_USER_WARNING | 用户自定义警告 |
E_USER_NOTICE | 用户自定义提示 |
E_USER_DEPRECATED | 用户产少的警告信息。类似E_DEPRECATED,但是是由用户自己在代码中使用PHP函数trigger_error()来产生的。 |
E_RECOVERABLE_ERROR | 可被捕捉的致命错误。它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。 |
Dans le processus d'apprentissage, comprenez simplement les types ci-dessus. Parce que vous ne le rencontrerez pas, si vous le rencontrez, vous pouvez consulter ce livre ou le manuel pour le savoir.
error_reporting Type d'erreur de rapport
error_reporting fait référence au rapport d'erreurs. Il existe également un tel paramètre dans php.ini. ce paramètre. Détermine les types d'erreurs que le moteur PHP enregistre, signale et affiche.
1. Définissez le paramètre error_reporting dans php.ini. Si le paramètre error_reporting est défini sur 0. Les erreurs dans l’ensemble du moteur PHP ne seront ni affichées, ni sorties, ni enregistrées. Il ne sera pas enregistré dans la journalisation qui sera abordée dans le chapitre suivant.
Si nous voulons afficher toutes les erreurs, nous pouvons écrire :
error_reporting = E_ALL
Si nous voulons afficher toutes les erreurs mais exclure invites, nous pouvons écrire ce paramètre comme :
error_reporting = E_ALL & ~ E_NOTICE
Affiche toutes les erreurs mais exclut les indices, la compatibilité et la compatibilité future. Il peut s'écrire comme suit :
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
2. Dans certains cas, nous n'avons pas l'autorisation d'exploiter le php.ini et que vous souhaitez le contrôler. Que faire avec error_reporting ?
Au début du fichier xxxx.php en cours d'exécution, nous pouvons utiliser la fonction error_reporting() pour atteindre l'objectif.
Le code de démonstration est le suivant :
<?php //关闭了所有的错误显示 error_reporting(0); //显示所有错误 //error_reporting(E_ALL); //显示所有错误,但不显示提示 //error_reporting(E_ALL & ~ E_NOTICE); ?>
Vous pouvez essayer le code ci-dessus et essayer d'écrire volontairement le mauvais code. Indique si l'erreur spécifiée sera affichée dans le fichier actuel.
[Développer et comprendre les points de connaissance] : Le symbole @ est une seule ligne que nous avons apprise auparavant et qui n'affiche pas d'erreurs. Veuillez ne pas utiliser le symbole @ ou l'utiliser avec parcimonie.
Lisons un fichier inexistant. Ce code PHP démontre le processus d'implémentation :
<?php //读取一个不存在的adsaf.txt文件,用@符抑制错误 @$fp = fopen('adsaf.txt','r'); ?>
Le symbole @ est moins efficace. Son processus d'implémentation dans le noyau PHP est :
<?php //关闭错误 error_reporting(0); //读取一个不存在的文件,显示错误 //显示错误 error_reporting(E_ALL & ~ E_NOTICE); ?><. 🎜>