Maison  >  Article  >  développement back-end  >  Explication détaillée de l'utilisation de l'instance de l'opérateur de contrôle d'erreur PHP @ ou die()

Explication détaillée de l'utilisation de l'instance de l'opérateur de contrôle d'erreur PHP @ ou die()

伊谢尔伦
伊谢尔伦original
2017-06-21 14:11:577250parcourir

PHP prend en charge un opérateur de contrôle d'erreur : @. Lorsqu'il est placé avant une expression PHP, tout message d'erreur que cette expression peut produire est ignoré.

Si vous définissez une fonction de gestion des erreurs personnalisée avec set_error_handler(), elle sera toujours appelée, mais cette fonction de gestion des erreurs peut (et devrait) appeler error_reporting(), et cette fonction a @ renverra 0.

Si la fonctionnalité track_errors est activée, tous les messages d'erreur générés par l'expression sont stockés dans la variable $php_errormsg. Cette variable est écrasée à chaque erreur, alors vérifiez-la le plus tôt possible si vous souhaitez l'utiliser.

symbole d'erreur ignoré php @

@ est un caractère d'erreur ignoré dans le langage php Lorsqu'il est placé avant une expression PHP, l'expression peut générer des messages d'erreur. sont ignorés. Par exemple :

@include("file.php");

Il est à noter que l'opérateur @ n'est valable que pour les expressions. On peut comprendre que si vous pouvez obtenir une valeur quelque part, vous pouvez ajouter l'opérateur @ devant elle.

Par exemple, vous pouvez le mettre avant les variables, la fonction et inclure des appels, des constantes, etc.

Il ne peut pas être placé avant la définition d'une fonction ou d'une classe, ni être utilisé dans des structures conditionnelles telles que if et foreach.

De plus, @ est généralement utilisé avec ou die(), par exemple :

(@include("file.php"))
 OR die("Could not find file.php!");

L'instruction ci-dessus signifie que si l'inclusion de file.php échoue, comme le fichier file.php S'il n'existe pas, "Impossible de trouver le fichier.php!" sera imprimé sur la page Web et l'exécution du programme sera immédiatement arrêtée.

Si le caractère @ n'est pas ajouté, alors lorsque include("file.php") renvoie une erreur, ce qui est imprimé sur la page Web est :

Warning: include(file.php) [function.include]: failed to open stream: No such file or directory
Warning: include() [function.include]: Failed opening 'file.php' for inclusion (include_path='.;C:\php5\pear')

À propos or die() Quelques utilisations

Tout le monde connaît l'utilisation de la fonction die(), mais vous n'êtes peut-être pas au courant de certains des effets produits par l'écriture de méthodes comme ou die().

Comprenez d’abord die().

définition et utilisation du die

la fonction die() génère un message et quitte le script en cours.

Syntaxe

die(status)

statut Obligatoire. Spécifie le message ou le numéro d'état à écrire avant de quitter le script. Les numéros d'état ne sont pas écrits sur la sortie.

Si status est une chaîne, la fonction affichera la chaîne avant de quitter.

Si status est un nombre entier, cette valeur sera utilisée comme état de sortie. La valeur de l'état de sortie est comprise entre 0 et 254. Le statut de sortie 255 est réservé par PHP et ne sera pas utilisé. L'état 0 est utilisé pour terminer le programme avec succès.

Remarque : Si le numéro de version de PHP est supérieur ou égal à 4.2.0, alors si status est un entier, ce paramètre ne sera pas affiché.

Déclaration php ou die()

On voit souvent des déclarations comme celle-ci :

$file = fopen($filename, 'r') or die("抱歉,无法打开: $filename");

ou c'est ainsi qu'on l'entend ici, car en PHP ne fait pas de distinction entre les types de données, donc $file peut être int ou bool, donc une telle instruction ne signalera pas d'erreur. Mais certains amis peuvent ne pas comprendre le processus de traitement.

En fait, dans la plupart des langages, dans des instructions comme bool ou bool, si la valeur précédente est vraie, la valeur suivante ne sera pas jugée. La même chose est vraie ici, donc si la fonction fopen est exécutée correctement, elle renverra une valeur int supérieure à 0 (ce qui est en fait "vrai") et les instructions suivantes ne seront pas exécutées.

Si la fonction fopen ne s'exécute pas, elle retournera false, puis il sera jugé si l'expression suivante est vraie.

Après l'exécution de die(), peu importe ce qui est renvoyé, le programme a arrêté de s'exécuter et le message d'erreur spécifié s'affiche, atteignant ainsi l'objectif de débogage. c'est tout.

Deux fonctions couramment utilisées avec la gestion des erreurs sont die() et exit() (à proprement parler, ce sont des constructions de langage plutôt que des fonctions, mais peu importe).

Lorsque die() et exit() sont appelés dans un script, le script entier sera terminé.

Ils peuvent tous être utilisés pour empêcher le script de continuer à s'exécuter, afin que certaines opérations importantes (telles que l'établissement d'une connexion à une base de données) n'aient pas lieu. Vous pouvez également passer die() et exit() une chaîne qui sera imprimée dans le navigateur.

Vous pouvez généralement voir die() et exit() utilisés dans les instructions conditionnelles OR.

Par exemple

include('config.inc.php') OR die ('Could not open the file. ');

Après avoir inclus une telle ligne de code, si PHP ne peut pas inclure le fichier de configuration, l'instruction die() sera exécutée et le message Impossible d'ouvrir le fichier sera être imprimé.

!defined('CURSCRIPT') && define('CURSCRIPT', ");//意思是如果没定义CURSCRIPT常量,则定义CURSCRIPT为空.

Vous en verrez des variantes tout au long du livre et dans le manuel PHP, car c'est un moyen rapide de gérer les erreurs (mais peut-être exagéré) sans avoir à utiliser un gestionnaire d'erreurs personnalisé.

En fait, die et exit sont équivalents, utilisés pour terminer le script en cours, souvent utilisé lors du débogage des programmes.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn