dis que j'ai une chaîne, J'ai aussi deux variables, $ A et $ B, qui est égale à "4" et "5" respectivement. p>
Comment puis-je obtenir le résultat de Merci:) P> $ char. $ char == "*". code> p>
$ A $ A $ CHAR $ B, IE 4 * 5? CODE> P>
6 Réponses :
La méthode la plus simple mais la plus dangereuse consiste à utiliser eval code>.
Je préférerais ne pas utiliser Eval car les valeurs proviennent de l'entrée de l'utilisateur.
@Konforce: enfin tout ce que nous devons utiliser le code dans la production, ils suggèrent que nous suggérons d'évaluer
@Fela, vous devriez TOUJOURS i> Valider l'utilisateur Saisir si vous utilisez eval code> ou non. Si vous validez que
$ a code> et
$ b code> sont des numéros appropriés et que
$ char code> est une opération appropriée, puis
eval code > sera en sécurité. Cela dit, je n'utiliserais toujours pas
eval code> sur un site public.
Si c'est un projet local, il n'y a aucune raison de ne pas utiliser eval code>.
Je n'utilise pas Eval, j'utilise des commutateurs avec différents opérateurs. Toute entrée utilisateur est désinfectée bien sûr.
Jetez un coup d'œil sur le eval () fonction. Vous devrez construire une commande PHP appropriée et courir à l'intérieur de l'EVAL () pour extraire le résultat. P>
Vous pouvez utiliser eval () code> comme suggéré par @konforce, mais la route la plus sûre serait quelque chose comme:
c'est la réponse que je cherchais :)
Heureux que je puisse aider :) bonne chance!
Vous pouvez faire avec S'il y a un opérateur de cas peut par tout ce que vous devriez vérifier quel opérateur est avant d'utiliser < / p> eval code> Cependant, je ne suggérerais pas d'utiliser
eval code>.
Oui, je vais aller avec cette option. Merci :)
La méthode la plus sûre est une construction de commutation:
function my_operator($a, $b, $char) { switch($char) { case '=': return $a = $b; case '*': return $a * $b; case '+': return $a + $b; etc... } }
Oui ... Les gens répondent trop vite!
Si l'opérateur est = code> Votre code produira
somme code> des opérandes. Il ne faut pas y avoir un
pause code>?
Le '=' ne ferait rien dans ce cas, à moins que $, a été transmis comme une référence. L'affectation serait perdue dès que la fonction renvoie, sinon. C'est juste un exemple.
@Shaktisingh pas besoin de break code> quand il y a
retour code>
<?php $a = 'alex'; $b = "alex"; $c = "=="; function abc($a,$b,$c){ $d = 'return ($a '.$c.' $b) ? true : false;'; return eval($d); } if(abc($a,$b,$c)){ echo "condition true"; }else{ echo "condition false"; } // echo $e; ?>
S'il vous plaît expliquer votre solution