Maison > Article > développement back-end > Introduction détaillée à assert et eval en php (exemple de code)
Le contenu de cet article est une introduction détaillée (exemple de code) sur assert et eval en php. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
assert Détermine si une expression est vraie. Renvoie vrai ou faux ;
<?php $s = 123; assert("is_int($s)"); ?>
À partir de cet exemple, vous pouvez voir que le paramètre de chaîne sera exécuté, ce qui est similaire à eval().
Cependant, eval($code_str) n'exécute que $code_str conforme à la spécification de codage PHP.
eval() : Cette fonction est utile pour stocker du code dans un champ de texte de base de données pour des calculs ultérieurs. (Il est également recommandé d'utiliser less en production)
Remarque : 1.eval() doit être une chaîne ; Variable $str dans la chaîne
(1) L'eval( ) calcule la chaîne selon le code PHP (calcul = exécution).
(2)La chaîne doit être du code PHP légal et doit se terminer par un point-virgule.
(3) Si aucune instruction return n'est appelée dans la chaîne de code, NULL est renvoyé. S'il y a une erreur d'analyse dans le code, la fonction eval() renvoie false
L'utilisation de assert est un peu plus détaillée. assert_option() peut être utilisé pour imposer certaines contraintes et contrôles sur assert();Valeur par défaut
ASSERT_ACTIVE=1 //Commutateur de fonction d'assertion
ASSERT_WARNING =1 // Lorsque l'expression est fausse, s'il faut afficher un message d'erreur d'avertissement, émettre un avertissement PHP pour chaque assertion ayant échoué
ASSERT_BAIL= 0 //S'il faut terminer l'exécution ; mettre fin à l'exécution sur les assertions ayant échoué
ASSERT_QUIET_EVAL= 0 // Si pour désactiver les invites d'erreur lors de l'exécution d'expressions ; désactiver error_reporting lors de l'évaluation de l'expression d'assertion
ASSERT_CALLBACK= (NULL) // S'il faut démarrer la fonction utilisateur de la fonction de rappel pour appeler les assertions ayant échoué
La documentation officielle de PHP est Il est recommandé d'utiliser assert pour le débogage. Nous pouvons constater qu'il existe également un commutateur ASSERT_ACTIVE qui peut être utilisé pour contrôler s'il faut activer le débogage.
Étant donné que la fonction principale d'assert est le débogage, ne la conservez pas lorsque le programme est publié. Il n'est pas judicieux d'utiliser assert pour juger des expressions dans le programme. La première est que assert peut être désactivé dans l'environnement de production, donc assert ne peut pas être entièrement fiable. L'autre est que assert() peut continuer à être exécuté ; ; et Si ASSERT_ACTIVE=1 est défini dans l'environnement de production, alors cette chaîne d'expression peut être exécutée, ce qui présente elle-même des risques de sécurité.
Par exemple
<?php function fo(){ $fp = fopen("c:/test.php",'w'); fwrite($fp,"123"); fclose($fp); return true; } assert("fo()"); ?>
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!