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 :

[POO] Passer une valeur de variable en variable [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut [POO] Passer une valeur de variable en variable
    Bonjour,

    je tente difficilement de comprendre les rouages de POO.

    J'ai un système de gestion par session de la langue de mon site (stockée dans une variable $nav et un systeme de gestion de la taille de police stockée dans ma variable $lang

    Ces deux variables sont utilisée un peu partout sur mon site.

    Mon code pour gérer tout ca est ci dessous. C'est le code original

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    //Si Pas de session on attribue la taille "12"
    if(!isset($_SESSION['size'])){
    $size = "12";
    }else{ //Sinon on reste sur la valeur enregistrée dans la session
    $size = $_SESSION['size'];
    }
     
    //Si on choisie une nouvelle taille, on enregistre la nouvelle valeur
    if(isset($_GET['size'])){
    		$size = $_GET['size'];
    		session_register("size");
    }
     
    //Si Pas de session on attribue la valeur "Accueil"
    if(!isset($_SESSION['nav'])){
    $nav = "1";
    }else{ //Sinon on reste sur la valeur enregistrée dans la session
    $nav = $_SESSION['nav'];
    }
     
    //Si on choisie une nouvelle section, on enregistre la nouvelle valeur
    if(isset($_GET['nav'])){
    		$nav = $_GET['nav'];
    		session_register('nav');
    }
    Je me suis dit que je répétais à chaque fois le meme code, les seules choses qui changent sont le nom de la variable finale et sa valeur par défaut.
    J'essai ainsi de crée dynamiquement le nom de la variable, mais je ne sais pas comment faire.
    Comme ca, chaque fois que je voudrais utiliser une nouvelle variable à stocker en session, je n'aurai juste à rajouter un objet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class parametre {
     
        var $mon_parametre ;
    	var $valeur_parametre ;
     
        function parametre($mon_parametre, $valeur_parametre) {
          $this->mon_parametre = $mon_parametre;
          $this->valeur_parametre = $valeur_parametre;
    	  }
     
    	 function enregistre() {//Affiche les valeurs de mes parametres pour les vérifier
    		echo $this->mon_parametre;
    		echo $this->valeur_parametre;
        }
    }
     
    $size = new parametre("size",12);
      $size->enregistre();
     
      echo'<BR>';
    $nav = new parametre("nav",1);
      $nav->enregistre();
    merci

    ici on a pas le systeme de logique, mais j'aimerais deja pouvoir tester ma premiere classe et mon premier objet (c'est ma premiere initiative) avec une valeur definie, meme si pour linstant on peux pas agir dessus

  2. #2
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    en plus clair, j'ai besoin que la valeur contenu dans $mon_parametre se transforme en $size (en concaténation ca donnerai '$'.$mon_parametre) si je met $objetsize = new parametre("size",12);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut
    salut, je doit etre encore plus débutant que toi, mais j'ai tellement envie d'essayer d'aider

    Voila depuis tout à l'heure je boss sur ce code qui marche pas lol.

    Mais il y a de l'idée je pense.

    Dis moi ce que tu en pense.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     $var_session = array ('size', 'nav');
    $value_def = array ('12','1');
    $i=0;
     
    while ($i <= count($var_session)) {
    if(!isset($_SESSION[$var_session[$i]])){
    $var_session[$i] = $value_def[$i];
    }else{ //Sinon on reste sur la valeur enregistrée dans la session
    $value_def = $_SESSION[$var_session[$i]];
    }
    $i= $i +1;
     
     
    }

  4. #4
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    tu n'utilise pas de class et objet la non?

  5. #5
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Par défaut
    j'ai lu en diagonale donc je ne suis pas sur d'avoir bien saisi ta demande mais est-ce que cette partie de la doc pourrait t'interesser?

    les variables dynamiques
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut
    euuuu non, fallait ?

  7. #7
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    ca m'aide un peu.

    Apparement, si je met un $ avant une varible $test, je vais bien avoir le résulat $valeur de test.

    Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $test="mavariable";
    $mavariable = "cest bon";
    echo $$test;
    ca va resoudre en partie mon probleme puisque je vais afficher cest bon, ca va dire qu'il va bien "crée " une variable $mavariable.

    La question maintenant est de savoir comment récupérer , par rapport à mon code ci dessus, la valeur size et la valeur nav pour créer les variable $size et $nav et comment recuperer leur valeur respective pour les assigner a ces variables créent.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut
    Salut, bon j'ai pas utilisé ta méthode dsl.

    Mais le code marche enfin.

    Tu rajoute le nom des variables dans le premier tableau et leurs valeurs dans le second, et il fait le reste tout seul.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $$var_session = array ('','size', 'nav'); //nom des variables
    $value_def = array ('','12','150'); //valeurs par défaut si pas de variable session correspondante
    $i=0;
     
    while ($i <= count($var_session)) {
     
    $var_session_tmp= $var_session[$i]; //variable temporaire
    $value_def_tmp = $value_def[$i];//variable temporaire
    if(!isset($_SESSION[($var_session_tmp)])){
    $$var_session_tmp = ($value_def_tmp);// 
    }else{ //Sinon on reste sur la valeur enregistrée dans la session
    $$var_session_tmp = ($_SESSION[($var_session_tmp)]);
    }
    $i= $i +1;
     
     
    }
    Echo  $var_session[1]."=".$size;
    Echo  $var_session[2]."=".$nav;

  9. #9
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    cest sympa merci, mais ca nexploite toujours pas l'objet et les classes.

    (tu va criser quand tu va lire ca...)

    mon pb en fait cest de recuperer mon $this->valeur_parametre; pour pouvoir faire un genre de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	 function enregistre($param, $valeur) {//Affiche les valeurs de mes parametres pour les vérifier
     
    $$param = $valeur;
     
     
        }

Discussions similaires

  1. [OL-2010] Passer une valeur date à une variable
    Par sebinator dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 09/02/2013, 16h55
  2. scroll : passer une direction (left/right) en variable
    Par helenegu dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/03/2009, 22h14
  3. Réponses: 2
    Dernier message: 07/03/2009, 19h13
  4. passer une chaine en nom de variable
    Par j-berne dans le forum Général Python
    Réponses: 6
    Dernier message: 22/05/2008, 20h20
  5. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52

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