fonction eval php marche pas :(

passion
WRInaute accro
WRInaute accro
 
Messages: 3125
Inscription: 6 Jan 2006

fonction eval php marche pas :(

Message le Sam Juil 30, 2011 9:52

Bonjour,

J'ai besoin d'utiliser la fonction eval en php pour résoudre mon problème mais je bloque parce que le résultat escompté n'est pas bon :(
Je m'explique....
Je dois vérifier dynamiquement que 2 valeurs soient présentes dans un array. Par contre merci de ne pas me conseiller de le faire directement dans le code source genre :
QUESTION :
"Pourquoi ne pas mettre in_array(tavaleur1,Array()) && in_array(tavaleur2,Array())?"
REPONSE : "non, parce que c'est valable pour une recherche de 2 valeurs mais aussi bien sur plusieurs! D'où l'avantage de créer une boucle qui va concaténer les conditions! héhéhé j'ai répondu en avance ! loool !"
Bon revenons à nos moutons !
Voilà ma boucle:
Code: Tout sélectionner
$monCouple = explode(":",$f);
   //initialiser
   $ope = "";
   for($i=0;$i<count($monCouple);$i++){
      $ope .= " in_array($monCouple[$i],$array_id) &&";
         if($i+1 == count($monCouple)){
            $operateur = substr($ope,0,-2);
            if(eval("\"$operateur\";")){
               array_push($famille_couple,$f);
               //echo $operateur;
             }
             else{
                echo $f.' = '.$operateur.'<br />';
              }
           }
        }


pour mes tests, j'ai mis un "echo $operateur;" afin de voir si la construction de ma variable "$operateur" était bonne et elle est ! Pas de problème syntaxique avec l'utilisation de "eval()"! Il me met aucune erreur !
Voici le type de résultat qu'il me sort en faisant un echo sur la variable "$operateur"
Code: Tout sélectionner
in_array(1,Array) && in_array(5,Array)


C'est là où je suis ennuyé parce que je n'ai pas d'erreurs mais en faisant des tests avec des valeurs existantes dans mon Array principal et il ne passe absolument pas dans ma condition positive !

Est-ce un problème de "cast" parce que je passe d'une chaine string transformée en condition?
Enfin, je ne vois pas là?

Merci de votre aide !


spout
WRInaute accro
WRInaute accro
 
Messages: 4378
Inscription: 14 Mai 2003

Re: fonction eval php marche pas :(

Message le Sam Juil 30, 2011 10:46

Je comprend pas pourquoi tu as besoin de ça, mais à tout hasard est-ce que serialize/unserialize ne conviendrait pas mieux ?

poulpe
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 29 Juin 2004

Re: fonction eval php marche pas :(

Message le Lun Aoû 01, 2011 19:30

Salut, je comprends pas bien non plus ce que tu veux faire, mais

Code: Tout sélectionner
$notFound = false;
for($i=0;$i<count($monCouple);$i++)
{
  if (!in_array($monCouple[$i],$array_id)
  {
      //ici tu fais ce que tu veux si tu n as pasce que tu cherches dans  array_id
     $notFound = true;
      break;
  }
}

if (!$notFound)
{
  //fais un truc
}
else
{
  //fais autre chose
}


a l air de faire dans l idee ce que je pense que tu essaies de faire :)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités