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 :

[Tableaux] Construction de variable dynamique


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 62
    Points
    62
    Par défaut [Tableaux] Construction de variable dynamique
    bonjour,

    je ne connais rien sur les variable dynamique donc je suis allez voir sur différents forum et cours pour avoir des infos.

    Malgre cela je ne vois toujours pas pourquoi ca ne fonction pas.

    voici le test que j'effectue :
    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
     
    <?php
    $variable1 = "ceci est ma variable";
    $nom = 'variable';
    $nb = 1;
    $nom2 = $variable.$nb; // concaténation de deux variable.
     
    echo "test1 : ";
    echo ${'variable'.$nb}; // equivaut à echo $variable1; !!!
    echo "<br>test2 : ";
    echo ${$nom.$nb}; // idem
    echo "<br>test3 : ";
    echo $$nom2;
     
    //--------------------------------------------------
     
    $_BDD['rh'] = "Ressources Humaines";
    ...
    $nom = "_BDD['rh']";
     
    echo "<br>";
    echo "<br>test4 : ";
    echo ${$nom};
    ?>
    la première parti est ce que j'ai vu dans les cours
    la deuxième est ce que moi je dois faire.

    la variable $nom est normalement rempli par l'intermédiare d'une requête sql mais la j'ai simplifier pour ma compréhension.

    voila ce que j'obtien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    test1 : ceci est ma variable
    test2 : ceci est ma variable
    test3 : 
     
    test4 :
    je pense que le probleme vient des quotes qu'il ne reconnait pas mais je ne vois pas comment faire.
    J'ai essayer de mettre des \ devant mais j'obtiens le même résultat


    merci pour votre aide

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 319
    Points
    319
    Par défaut
    Mmmh tu as fait une petite erreur pour $nom2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $nom = 'variable';
    $nb = 1;
    $nom2 = $variable.$nb; // Ce n'est pas $variable !! :)
     
    $nom2 = $nom.$nb;
    echo ${$nom2};//Devrais mieux marcher.
    Sinon pour le $_BDD, c'est un super-tableau natif de PHP ? comme $_SESSION ou $_POST ? si non , évite d'utiliser un underscore ( _ ) après le $, tu risque de crée des conflits pour apache

    Utilise plutot $BDD

    Si tu y tiens vraiment essaye aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $_BDD['rh'] = "Ressources Humaines";
    ...
    $nom = "_BDD['rh']";
    $nom2 = "_BDD";
     
    echo "<br>";
    echo "<br>test4 : ";
    echo (${'$'.$nom2})['rh']; /*Pas certain que sa marche mais il faut spécifier 
    obligatoirement l'index/étiquette du tableau que tu souhaite afficher mais 
    je suis pas certain que cela marche si tu l'indique directement dans le nom
    de la variable, sinon essaye :   */
    var_dump( ${'$'.$nom2} ); //Pour voir s'il lit déjà bien ton tableau $_BDD

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 62
    Points
    62
    Par défaut
    ok merci je n'avais pas remarquer que $variable n'existait pas

    Par contre j'ai enlever les _ comme tu la dis vu que c'est un tableau que j'ai créé mais ca ne fonctionne toujours pas.

    si tu as d'autre idée sur la raison.

    merci encore.

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 319
    Points
    319
    Par défaut
    Sans l'underscore sa devrait être plus simple ^^ essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $nom = "BDD";
     
    echo ${$nom}['rh'];

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 62
    Points
    62
    Par défaut
    Oui de cette façon ca fonction mais ca ne correspond pas à ce que j'ai à l'origine.

    J'obtien la valeur de $nom à partir d'une base de données, la requete que j'ai effectuer me retourne BDD['rh'] .

    Je pense qu'il y a un probleme avec les ' dans BDD['rh'] mais je ne vois pas lequel.

Discussions similaires

  1. Problème de construction de variables dynamiques
    Par Ploplo31 dans le forum Langage
    Réponses: 1
    Dernier message: 07/11/2007, 14h43
  2. [Tableaux] Variable dynamique (variable variable)
    Par gabvoir dans le forum Langage
    Réponses: 6
    Dernier message: 06/04/2007, 14h46
  3. Réponses: 2
    Dernier message: 10/12/2006, 09h57
  4. [Tableaux] Recuperation de variable dynamiques
    Par zevince dans le forum Langage
    Réponses: 10
    Dernier message: 18/09/2006, 16h28
  5. Réponses: 9
    Dernier message: 15/09/2006, 19h08

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