signe opératoire contenu dans une variable ? [résolu] - PHP - Programmation
Marsh Posté le 05-04-2008 à 21:14:18
héhé je ne vois pas l'utilité mais ça reste une bonne question quand meme
donc moi je pense à 2 choses qui peuvent solutionner le probleme :
faire $d = (int) $a.$c.$b; ou echo (int) $d
et si ça marche pas je pense a eval
et si ça marche, ban je ne sais pas
Marsh Posté le 05-04-2008 à 21:44:19
Pour l'utilité, je voulais faire quelque chose du genre :
Citation : $a = 1; |
Je trouvais ça facile et très court mais ca ne marche pas
Ta 1ere solution ne fonctionne pas. Je les avait déjà testé en vain.
Ta 2ème solution ne marche pas non plus. Pourtant, quand je regarde la doc php, cette fonction devrait résoudre ce problème. Je vais continuer mes recherches même si ça ne sert peut être à rien, je suis curieux ^^
Marsh Posté le 05-04-2008 à 21:55:04
$d = eval( $a.$c.$b)
(plus court , et en plus ca marche )
Marsh Posté le 05-04-2008 à 22:15:34
bizarrement, ça ne marche pas :
$a = 1;
$b = 1;
$c = '+';
$d = eval($a.$c.$b);
echo $d;
erreur :
Parse error: parse error, unexpected $end in C:_blabla.php(15) : eval()'d code on line 1
Si je met "<?php" ) la 1ere ligne, j'ai l'erreur précédente. Sinon je met "<?" et là, ca m'écrit tout mon code (et ne l'execute pas)...
Marsh Posté le 05-04-2008 à 22:18:56
pour que ca fonctionne avec <? au lieu de <?php, il faut activer les short tag sur le serveur ( config de php.ini )
essaye ca
$d = eval($a.$c.$b.';');
Marsh Posté le 05-04-2008 à 23:20:23
J'ai lu et relu la doc php sur eval() mais au final, ça ne me retourne rien. Le '+' n'est pas interprété même avec la fonction eval()
Ps : merci pour la précision sur les short open tag, je le savais en plus mais j'étais pas sur le même pc ^^
Marsh Posté le 05-04-2008 à 23:29:46
il se passe quoi quand tu fait eval('1+1;'); ?
Marsh Posté le 05-04-2008 à 23:39:17
Ca ne retourne rien justement. Cette fonction n'interprète pas ce genre d'opération visiblement.
Marsh Posté le 06-04-2008 à 01:01:55
Ah ben voilà, c'est possible cette affaire. Je pensais avoir fait le tour sur l'utilisation de cette fonction mais keneni.
Merci Art_dupond, je me coucherais moins bête ce soir. Et merci à Naeh et Flo850 d'avoir consacré quelques minutes à mon interrogation.
Marsh Posté le 05-04-2008 à 21:07:21
Bonjour tout le monde !
En ce moment je m'amuse à codes des petites choses en Php pour progresser et j'ai donc une question.
Peut-on stocker des opérateur ('+', '-','/' et '*') dans une variable pour effectuer une opération plus tard. Je montre en code ce que ça donne :
$a = 1;
$b = 1;
$c = '+';
$d = $a.$c.$b;
echo $d;
J'aimerais que $d soit le résultat de l'opération, soit 2. Or, il considere $c comme un élément string et donc plus comme un signe opératoire. Il m'affiche donc l'opération 1+1.
Il y a t il un moyen pour convertir $c afin qu'il soit pris en compte comme un opérateur ou est-ce tout simplement pas possible ?
ps : c'est juste par curiosité et que j'ai soif d'apprendre
Message édité par kl14582 le 06-04-2008 à 01:03:45