Page 1 sur 1
$variable contenant une opération
Posté : 24 juin 2014, 02:37
par Elie
Hello,
J'aimerai faire marcher ca :
function calcul($operation) {
return eval('4'.$operation);
}
echo calcul('+2'); // 6
Une idée ?
Re: $variable contenant une opération
Posté : 24 juin 2014, 08:14
par xTG
Pas fan des eval car c'est souvent pour faire de belles brèches mais ce serait plutôt ainsi :
function calcul($operation) {
$retour = 0;
eval('$retour = 4'.$operation);
return $retour;
}
echo calcul('+2'); // 6
Sinon pour faire mieux il faut décomposer une chaîne de caractères qui contient ton opération et appliquer chaque opérateur unitairement.
Re: $variable contenant une opération
Posté : 24 juin 2014, 11:34
par Elie
Euh genre avec un str_split ?
Si on peut se passer de ereg, je prend !
Re: $variable contenant une opération
Posté : 24 juin 2014, 15:55
par Elie
J'avais vu un truc similaire dans les exemples de php.net mais en local ca marche pas ...
Code : Tout sélectionner
Parse error: syntax error, unexpected end of file in C:\wamp\www\test.php(5) : eval()'d code on line 1
Re: $variable contenant une opération
Posté : 24 juin 2014, 16:06
par moogli
ben y a une erreur de syntaxe, c'est quoi ce que tu test exactement ?
manquerais pas une ' des fois ?
sinon le parse avec explode c'est réalisable.
le plus simple étant 3 paramètres, deux pour les opérandes et un pour l'opérateur
@+
Re: $variable contenant une opération
Posté : 24 juin 2014, 16:15
par Elie
J'ai juste copié le code de xTG
Re: $variable contenant une opération
Posté : 24 juin 2014, 18:07
par Elie
J'ai réfléchi et simplifié ...
function calcul($operation) {
return 4+$operation;
}
echo calcul(2); // 6
echo calcul(-1); // 3
Re: $variable contenant une opération
Posté : 24 juin 2014, 20:14
par xTG
Dans mon exemple je me demande s'il ne manquerait pas un point virgule dans la formule d'eval.
