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. ;)