Les types d'erreurs en php sont : 1. Erreurs dans le programme lui-même ; 2. Symboles non définis ; 3. Différences causées par le système d'exploitation ; 4. Différences de configuration PHP ; 6. Erreur d'exécution ; ; 7. Erreur PHP ; 8. Définir le gestionnaire d'erreurs.
Recommandé : "Tutoriel vidéo PHP"
Types d'erreurs PHP
1. Erreurs dans le programme lui-même
Ce type d'erreur est relativement facile à gérer, comme les erreurs de syntaxe ou l'impossibilité d'être analysées par le compilateur. Ces erreurs ne seront pas compilées lors de la compilation. vous pouvez alors trouver le code d'erreur spécifique en fonction de l'invite d'erreur. Mais lorsqu'une erreur se produit dans le code exécuté à l'aide de eval(), elle ne peut pas être trouvée lors de la compilation. Elle ne peut qu'attendre que le code soit exécuté et une erreur se produit lors de sa compilation. Si nous exécutons le code suivant, elle apparaîtra lors de la compilation. processus d'exécution. Erreur :
<?php echo "this will be echo to putty"; eval("php error when parser"); ?>
La différence entre cette erreur et les autres erreurs de code est que l'écho avant qu'il puisse être émis. Il n'y aura aucune sortie pour les autres erreurs de code, car la compilation ne réussira pas et ne s'exécutera pas.
2. Symboles non définis
Lorsque PHP est exécuté, il peut rencontrer de nombreuses variables, fonctions et autres noms qu'il ne connaît pas, car PHP n'en a pas une compréhension complète lors de la compilation de All noms de symboles, noms de fonctions, etc.
S'il s'agit simplement d'une constante ou d'une variable non définie, il s'agit simplement d'un formulaire de notification. Mais si une fonction ou une classe non définie est rencontrée, le programme se terminera. Concernant la classe introuvable, si l'utilisateur définit une fonction appelée __autoload, elle sera appelée lorsque PHP rencontrera une classe non définie. Si la classe peut être renvoyée via cette fonction, la classe nouvellement chargée sera utilisée.
3. Erreurs universelles
3.1 Différences causées par les systèmes d'exploitation
Certaines fonctions PHP qui ne sont disponibles que sur une plateforme spéciale.
Quelques fonctions PHP qui ne sont pas disponibles sur une plateforme particulière.
Quelques fonctions PHP légèrement différentes selon les plateformes.
Caractères qui distinguent les composants de chemin dans les noms de fichiers.
Les programmes ou services externes peuvent ne pas être disponibles sur toutes les plateformes.
3.2 Différences de configuration PHP
Par exemple, l'option de configuration magic_quotes_gpc, si cette option est activée, PHP ajoutera des barres obliques à toutes les données externes. À ce stade, si le programme est transféré sur un autre serveur sans que cette option soit activée, des problèmes se poseront avec la saisie de l'utilisateur. La façon de gérer des différences similaires consiste à vérifier le code PHP et à voir si l'option est activée via la fonction ini_get(), puis à effectuer un ajustement unifié.
register_globals : ce paramètre détermine si PHP introduit GET, POST, les cookies, les variables d'environnement ou les variables de serveur comme variables globales. Généralement évité.
allow_url_fopen : Si cette option est définie sur false, la fonction d'exploitation des fichiers URL est désactivée.
3.3 Différences SAPI
4. Erreurs de fonctionnement
Telles que les erreurs causées par des facteurs autres que PHP lui-même lors de la création de données sur le disque dur ou d'opérations réseau et d'appels à la base de données.
5. Erreur PHP
Le mécanisme d'erreur de PHP est utilisé par toutes les fonctions intégrées de PHP. Habituellement, ce mécanisme simple affiche un message d'erreur, comprenant des informations de base liées à l'erreur.
Les niveaux d'erreur sont divisés en :
E_ERROR:严重错误。 E_WARNING:最普通的错误类型。 E_PARSE:解析错误在编译的时候发生。 E_STRICT:这个错误级别是唯一不包含在E_ALL常量中的,为了让PHP4到PHP5的迁移更加容易。 E_NOTICE:表示运行的代码可能在操作一些未知的事情。 E_CORE_ERROR:由于扩展启动失败等导致的。 E_COMPILE_WARNING:编译的时候出现的警告,告诉用户一些不推荐使用的语法信息。 E_COMPILE_ERROR:编译错误。 E_USER_ERROR E_USER_WARNING 可以用error_reporting(Integer)函数来设置哪些错误被报告。如所有的错误,表示为E_ALL ,除了通告以外的所有错误,可以表示为E_ALL & ~E_NOTICE. display_errors(boolean):这个设置控制错误是否作为PHP输出的一部分显示出来。 log_errors(boolean),这个设置控制错误是否记录。日志的地址是通过error_log(String)设置决定的。默认情况下,错误被记录到WEB服务器的错误日志中。 html_errors(boolean):设置控制是否在错误信息中采用HTML格式 。
Six, définissez le gestionnaire d'erreurs
Vous pouvez appeler set_error_handler(error_handle_function,error_types) pour spécifier le gestionnaire d'erreurs. Comme
function customError($errno, $errstr, $errfile, $errline) { echo "<b>Custom error:</b> [$errno] $errstr<br />"; } set_error_handler("customError"); // 默认为所有的错误,就是E_ALL.
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!