Maison > Article > développement back-end > Quels sont les types de niveaux d'erreur php ?
Types de niveaux d'erreur PHP : 1. Erreur d'analyse ou erreur de syntaxe. Cette erreur arrêtera l'exécution du programme et affichera un message d'erreur ; 2. Erreur fatale 3. Erreur d'avertissement, ce qui signifie que la syntaxe du programme n'a pas d'erreur. erreurs, mais pendant l'exécution Au cours du processus, certains aspects déraisonnables du programme sont détectés, ce qui provoque un message d'avertissement et le programme continuera à s'exécuter ; 4. Faites attention aux erreurs, qui sont similaires aux erreurs d'avertissement, ce qui signifie que le le programme contient des erreurs, mais il permet l'exécution de scripts ; 5. L'erreur de niveau le plus bas (non recommandé, non recommandé) se produira lors de l'utilisation de certaines fonctions expirées et le programme continuera à s'exécuter.
L'environnement d'exploitation de ce tutoriel : système Windows7, version PHP8, ordinateur DELL G3
Niveau d'erreur PHP
Erreur d'analyse > Avis > ; Obsolète
1. Erreur d'analyse ou erreur d'analyse (Erreur d'analyse)
L'erreur de grammaire est l'erreur la plus courante en programmation et la plus simple à résoudre. Par exemple : lorsqu'un point-virgule est manquant, An. un message d'erreur s'affichera. 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.
【Exemple】Ce qui suit montre les erreurs de syntaxe courantes et les messages d'erreur associés via un code simple.
<?php $a = 1; $b = 2; $c = $a + $b echo ; ?>
; est omis à la fin de la ligne 4 dans le code ci-dessus, donc l'exécution du code ci-dessus affichera le message d'erreur suivant :
Parse error: syntax error, unexpected 'echo' (T_ECHO) in D:\WWW\index.php on line 5
Comme le montrent l'exemple ci-dessus et les résultats de l'exécution, les erreurs de syntaxe empêcheront le programme de continuer à exécuter. Ce n'est qu'une fois ces erreurs résolues que le programme pourra s'exécuter correctement.
C'est le type d'erreur où le compilateur PHP comprend le code PHP mais identifie une fonction non déclarée. Cela signifie appeler une fonction sans définition de fonction.
Le programme signale directement une erreur et le code doit être modifié ! ! ! Pour interrompre l'exécution du programme, vous pouvez utiliser la fonction register_shutdown_function() pour déclencher une fonction avant la fin du programme
Par exemple
<?php function add($x, $y) { $sum = $x + $y; echo "sum = " . $sum; } $x = 0; $y = 20; add($x, $y); diff($x, $y); ?>
Explication : A la ligne 10, la fonction diff() est appelée, mais la fonction diff( ) n'a pas de définition de déclaration, donc cela donne une erreur.
Il n'y a pas d'erreur de syntaxe dans le programme, mais pendant le processus d'exécution, PHP trouvera certaines parties déraisonnables du programme et affichera un message d'avertissement, mais le programme continuera vers le bas. l'exécution.
Exemple : L'utilisation de 0 comme diviseur entraînera un mauvais fonctionnement du programme et générera un message d'erreur.
<?php $a = 1; $b = 0; $c = $a / $b; echo "$a / $b = $c"; ?>
Erreur :
C'est similaire à une erreur d'avertissement, ce qui signifie que le programme contient des erreurs, mais il permet l'exécution de scripts. Il apparaîtra lors de l'utilisation de variables non définies, de constantes ou de clés de tableau sans guillemets, et le programme continue de s'exécuter
<?php header("content-type:text/html;charset=utf-8"); $x = "PHP中文网"; echo $x; echo $y; ?>
Explication : Ce programme utilise la variable non déclarée $y, il donne donc un message d'erreur.
5. L'erreur de niveau le plus bas (obsolète, non recommandé, non recommandé)
se produira lors de l'utilisation de certaines fonctions expirées et le programme continuera à s'exécuter.
1. Modifiez le fichier de configuration PHP php.ini
error_reporting = E_ALL&~E_NOTICE; //设置错误报告级别 display_errors = 1; //开发环境开启,生产环境关闭
2. Utilisez la fonction error_reporting()
Après avoir défini de cette manière, cela 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 : environ 15 au total
15个正好对应二进制的15位。
需要注意的是, 上述表中的字段, 不是一成不变的, 不同的PHP版本, 值可能会不同
任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。
例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:
例:
<?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错误,警告,语法错误,提醒都返错。 ?>
PHP的异常是PHP5的新增特性,与JAVA/C#的异常不同,PHP异常需要手动抛出throw new Exception,而不是系统自动抛出。
PHP错误与异常的区别,他们是2个不同的概念,但有共同的地方:
如果异常不捕获处理,程序将会终止,并报出Fatal Error 错误,看到这里大家就会觉得异常是不是错误的一种,这是一种错觉,但这样理解也可以。但异常捕获后程序可以继续执行,而真正的Fatal Error错误出现后程序就必须终止。
异常可以使用 try{}catch(){}
来捕获捕获,捕获之后后续代码可以继续执行;而错误是无法使用 try{}catch(){} 捕获的。
如果抛出了异常,就必须捕获它,否则程序终止执行。
推荐学习:《PHP视频教程》
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!