IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Chaîne => expression booléenne


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Par défaut Chaîne => expression booléenne
    Bonjour à tous.
    J'ai un programme à faire en php, et pour une partie de ce programme, je dois convertir des chaine en expression booleenne pour les calculer.
    Je m'explique par un exemple:
    J'ai une chaine:
    "A && B", et j'ai A=true et B=false par exemple.
    Comment puis je faire pour que php comprenne qu'il faut évaluer (calculer) l'expression booléenne "A && B" et non la chaine de caractère (auquel cas il me renverra toujours 1.
    J'ai essayer avec un settype, mais ca ne fonctionne pas
    J'avais mis:
    <?
    $a=true;
    $b=false;

    $exp="$a && $b";
    settype($exp,"boolean");
    $res=$exp;
    echo $res;
    ?>
    Mais cela renvoie 1 (donc true).
    J'ai vu qu'en java, on peut se servir de parseBoolean, mais là en php, je ne sais pas.
    Si quelqu'un a une idée ou a déja eu le meme problème.
    Merci d'avance à tous, et bonne journée.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Par défaut
    Et un if($a && $b), ça marche pas ?

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    Et ceci (ce n'est pas très élégant mais il n'y a pas de raison que ce la ne fonctionne pas. Attention, je n'ai pas testé, c'est le principe que j'énonce ici):
    (je suppose qu'en première ligne, il y a :$a = "true"; )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if ($a == "false")
     $boolA = false;
    else
     $boolA = true;
    if ($b == "false")
     $boolB = false;
    else
     $boolB = true;
    if($boolA && $boolB)
    ...

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Par défaut résolution
    Il fallait en fait (mais il doit y avoir d'autres solutions) se servir de la fonction "eval()":
    <?
    $A = false;
    $B = false;
    $verif = '$A && !$B';
    eval('$var = '.$verif.';');
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Normalisation d'une expression booléenne
    Par skystar dans le forum Prolog
    Réponses: 15
    Dernier message: 04/11/2007, 00h40
  2. Transformation d'expression booléenne
    Par bitou dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 21/05/2007, 19h17
  3. Réponses: 13
    Dernier message: 08/05/2007, 10h22
  4. Analyseur Syntaxique Expression Booléenne
    Par Invité dans le forum Langage
    Réponses: 8
    Dernier message: 01/10/2006, 11h57
  5. [XSLT] Expression booléenne en tableau
    Par brunoz dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/02/2006, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo