Dans l'article précédent, je vous ai présenté "Cinq minutes pour vous aider à comprendre ce qu'est la gestion des exceptions en PHP", qui présentait en détail les problèmes liés à la gestion des exceptions PHP. Continuons la lecture dans cet article. connaissance pertinente de la gestion des erreurs PHP, des types d'erreurs PHP et des niveaux d'erreur PHP. J'espère que cela sera utile à tout le monde !
Il est inévitable que les programmeurs commettent des erreurs pendant le processus de développement, ou des erreurs peuvent survenir pour d'autres raisons. À l'heure actuelle, il est nécessaire pour nous de comprendre quels types d'erreurs et quels niveaux d'erreur existent en PHP. Vous pouvez également cliquer sur la vidéo pédagogique gratuite « php Error Handling » pour acquérir des connaissances connexes.
Les erreurs de programme PHP sont généralement divisées en trois catégories, à savoir les erreurs de syntaxe, les erreurs d'exécution et les erreurs de logique.
Erreurs de grammaire
Les erreurs de grammaire sont les erreurs les plus courantes en programmation et les plus faciles à résoudre. Par exemple, un message d'erreur s'affichera lorsqu'un point-virgule est manquant. Cette erreur arrête l'exécution du programme et affiche un message d'erreur. Nous pouvons corriger le programme en fonction du message d'erreur et le réexécuter.
L'erreur de syntaxe peut être considérée comme le type d'erreur le plus courant que nous rencontrons dans le processus de programmation, en même temps, je pense que c'est aussi l'erreur la plus simple à résoudre, par exemple : oublier de saisir un point-virgule lors de la saisie ou une erreur ; Syntaxe de la fonction.
<?php $a = 1 echo $a; ?>
Dans l'exemple ci-dessus, il manque un point-virgule à la fin de la deuxième ligne et le résultat de sortie est incorrect.
Après avoir ajouté le point-virgule, le programme s'exécute normalement et le résultat de sortie est 1. De cela, nous pouvons voir que lorsqu'une erreur de syntaxe se produit, le programme s'arrêtera et continuera à s'exécuter. Lorsque l'erreur de syntaxe est résolue, le programme peut continuer à s'exécuter.
Erreur d'exécution
Une erreur d'exécution est une erreur qui se produit lors de l'exécution du programme. À l'heure actuelle, il convient de noter qu'il n'y a pas d'erreur de syntaxe, mais. pendant le processus d'exécution, PHP vous avertira qu'il y a quelque chose de déraisonnable dans le programme. Contrairement aux erreurs de syntaxe, le programme continuera à s'exécuter vers le bas.
L'exemple est le suivant :
<?php $a = 1; $b = 0; $c = $a / $b; echo "$a / $b = $c"; ?>
Dans l'exemple ci-dessus, il n'y a pas d'erreur de syntaxe, mais 0 ne peut pas être utilisé comme diviseur, et le résultat de sortie est :
Erreur logique
Programme avec erreur logique Il s'exécutera normalement, mais le résultat de sortie est erroné. La cause première se produit dans le code que nous avons écrit. Il n'y a pas de message d'alarme pendant l'exécution du programme. L'exemple est le suivant :
<?php $a = 1; $b = 2; if($a = $b){ echo '$a = $b'; }else{ echo '$a != $b'; } ?>
Résultat de sortie :
À partir de l'exemple ci-dessus, nous pouvons voir que le résultat de sortie est évidemment erroné et illogique. Lorsqu'une erreur logique se produit, il n'y a pas de message d'alarme. Cela nous oblige à être plus vigilants et à éviter les erreurs logiques.
Il existe à la fois des types d'erreur et des niveaux d'erreur définis en PHP. Les niveaux d'erreur peuvent être définis dans php.ini. (Cliquez sur "Comment télécharger des fichiers en PHP ? Vous comprendrez après avoir lu ceci ! " pour voir comment trouver le php.ini)
Les types d'erreurs en PHP sont les suivants :
1 --- E_ERROR
---Les erreurs d'exécution fatales sont généralement des situations irrécupérables, telles que des problèmes causés par l'allocation de mémoire. La conséquence est que le script se termine et ne s'exécute plus. E_ERROR
---致命的运行时错误,一般是不可恢复的情况,例如内存分配导致的问题,后果是导致脚本终止、不再继续运行。
2 --- E_WARNING
--- 运行时警告(非致命错误),仅给出提示信息,但是脚本不会终止运行。
4 --- E_PARSE
--- 编译时语法解析错误,仅由分析器产生。
8 --- E_NOTICE
---运行时通知,表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。
16 --- E_CORE_ERROR
--- 在 PHP 初始化启动过程中发生的致命错误,类似 E_ERROR,但是是由 PHP 引擎核心产生的。
64 --- E_COMPILE_ERROR
--- 致命编译时错误,类似 E_ERROR,但是是由 Zend 脚本引擎产生的。
128 --- E_COMPILE_WARNING
E_WARNING
--- Avertissement d'exécution (erreur non fatale), seules les informations d'invite sont données, mais le script ne terminera pas l'opération. 🎜🎜4 --- E_PARSE
--- Erreur d'analyse de syntaxe au moment de la compilation, générée uniquement par l'analyseur. 🎜🎜8 --- E_NOTICE
--- Notification d'exécution, indiquant que le script rencontre une situation qui peut apparaître comme une erreur, mais il peut également y avoir des notifications similaires dans les scripts qui peuvent s'exécuter normalement. 🎜🎜16 --- E_CORE_ERROR
--- Une erreur fatale qui se produit lors du démarrage de l'initialisation de PHP, similaire à E_ERROR, mais générée par le cœur du moteur PHP. 🎜🎜64 --- E_COMPILE_ERROR
--- Erreur fatale à la compilation, similaire à E_ERROR, mais générée par le moteur de script Zend. 🎜🎜128 --- E_COMPILE_WARNING
--- Avertissement lors de la compilation (erreur non fatale), similaire à E_WARNING, mais généré par le moteur de script Zend. . 🎜1024 --- E_STRICT
--- Activez les suggestions de PHP pour les modifications de code afin de garantir la meilleure interopérabilité et compatibilité ascendante du code. E_STRICT
--- 启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。
8192 --- E_DEPRECATED
--- 运行时通知,启用后将会对在未来版本中可能无法正常工作的代码给出警告。
16384 --- E_USER_DEPRECATED
--- 用户产生的警告信息,类似 E_DEPRECATED,但是是由用户自己在代码中使用 PHP 函数 trigger_error() 来产生的。
30719 --- E_ALL
E_DEPRECATED
--- La notification d'exécution, lorsqu'elle est activée, donnera un avertissement pour le code qui pourrait ne pas fonctionner correctement dans les versions futures. 30719 --- E_ALL
--- Tous les messages d'erreur et d'avertissement sauf E_STRICT. 🎜🎜Si vous souhaitez en savoir plus sur PHP, vous pouvez cliquer sur "🎜Tutoriel vidéo PHP🎜" pour apprendre ! 🎜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!