Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1529 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] signe opératoire contenu dans une variable ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] signe opératoire contenu dans une variable ?

n°1713220
kl14582
Posté le 05-04-2008 à 21:07:21  profilanswer
 

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 :  
 

Citation :

$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
mood
Publicité
Posté le 05-04-2008 à 21:07:21  profilanswer
 

n°1713222
naeh
Posté le 05-04-2008 à 21:14:18  profilanswer
 

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 :)


Message édité par naeh le 05-04-2008 à 21:15:32
n°1713226
kl14582
Posté le 05-04-2008 à 21:44:19  profilanswer
 

Pour l'utilité, je voulais faire quelque chose du genre :  
 

Citation :

$a = 1;
$b = 1;
$signe = '+-/*';
$i=0;
 
for($i;$i<=3;$i++){
$d = $a.$signe[$i].$b;
echo $d;
}


 
Je trouvais ça facile et très court mais ca ne marche pas  :pt1cable:  
 
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 ^^


Message édité par kl14582 le 05-04-2008 à 21:45:02
n°1713227
flo850
moi je
Posté le 05-04-2008 à 21:55:04  profilanswer
 

$d = eval( $a.$c.$b)
(plus court , et en plus ca marche )


Message édité par flo850 le 05-04-2008 à 21:55:18

---------------

n°1713229
kl14582
Posté le 05-04-2008 à 22:15:34  profilanswer
 

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

n°1713230
flo850
moi je
Posté le 05-04-2008 à 22:18:56  profilanswer
 

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


---------------

n°1713239
kl14582
Posté le 05-04-2008 à 23:20:23  profilanswer
 

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 ^^


Message édité par kl14582 le 05-04-2008 à 23:21:23
n°1713247
flo850
moi je
Posté le 05-04-2008 à 23:29:46  profilanswer
 

il se passe quoi quand tu fait eval('1+1;'); ?


---------------

n°1713252
kl14582
Posté le 05-04-2008 à 23:39:17  profilanswer
 

Ca ne retourne rien justement. Cette fonction n'interprète pas ce genre d'opération visiblement.

n°1713262
art_dupond
je suis neuneu... oui oui !!
Posté le 06-04-2008 à 00:35:53  profilanswer
 

Code :
  1. $a = 1;
  2. $b = 3;
  3. $op = '+';
  4. eval ('$c = $a '.$op.' $b;');
  5. echo $c; // 4


Message édité par art_dupond le 06-04-2008 à 00:38:34

---------------
oui oui
mood
Publicité
Posté le 06-04-2008 à 00:35:53  profilanswer
 

n°1713264
kl14582
Posté le 06-04-2008 à 01:01:55  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] signe opératoire contenu dans une variable ?

 

Sujets relatifs
[résolu]Incrémentation variable à chaque rechargement de la pageRecuperation de la premier caractere du contenu d'une variable
[RESOLU] Sauvegarde automatique SQL chez Free[Résolu] Apache, organisation de la racine
[Résolu] Incompréhensible...[DELPHI] Changer le contenu d'une form
preg_match et allage à la ligne ? [resolu][RESOLU]Sessions non transmise
Plus de sujets relatifs à : [résolu] signe opératoire contenu dans une variable ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR