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] accéder dynamiquement aux attributs d'un objet


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 145
    Par défaut [POO] accéder dynamiquement aux attributs d'un objet
    Voici un p'tit morceau de code de ma class

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function init_user(){
    	// Chargement de toute les données de l'utilisateur
    	$sql = "SELECT * FROM ".$this->table." WHERE id = '".$this->id."'";
    	$req = mysql_query($sql);
    	$ligne = mysql_fetch_array($req);
    	$nbr_rows = mysql_num_fields($req);
    	$ligne = mysql_fetch_array($req);
    	for ($i=0;$i<$nbr_rows;$i++){
    		$field = mysql_field_name($req,$i);
    		$this->????? = $ligne['$field'];
    	}
    }
    Mon problème, c'est que j'aimerai que le ????? qui est dans le code ce remplace automatiquement à chaque tour de la boucle par le nom du champ ($field)

    Je voudrai évité les tableau comme : $this->info['$field']
    pour pouvoir appelé mes donné avec $this->ville au lieu de $this->info['ville']

    Une idée ?

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, tu peux t'inspirer de ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    class MyClass {
    	var $myVar1 = 'val1';
    	var $myVar2 = 'val2';
    }
     
    $myObject = new MyClass();
    $varName = 'myVar1';
    echo $myObject->$varName; // Affiche val1
    ?>
    D'après ce que j'ai compris de ton code, il faut que tu remplaces ?????? par $field

    Bon développement

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 145
    Par défaut
    C'est bien la premère idée que jai eu mais ca ne marché pas, je me suis fait une raison en allant voir sur php.net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    // correct, le signe $ est unique
    $cart->items  = array("10" => 1);
    // incorrect, car $cart->$items devient $cart->""
    $cart->$items = array("10" => 1);
    // correct, mais risque de ne pas se comporter comme prévu
    // $cart->$myvar devient $cart->items
    $myvar = 'items';
    $cart->$myvar = array("10" => 1);
    ?>
    Extrait de http://fr3.php.net/manual/fr/language.oop.php (exemple 18.6)

  4. #4
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    Il faut declarer les variables a l'avance, dans ce cas j'utiliserai plutot une propriete tableau, dont les variables sont declarables dynamiquement.

Discussions similaires

  1. assigner dynamiquement les valeurs aux attributs d'un objet
    Par buffalo974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/03/2014, 15h06
  2. Accéder aux attribut d'un objet
    Par bakman dans le forum Services Web
    Réponses: 1
    Dernier message: 05/03/2013, 14h51
  3. [SimpleXML] Accéder aux attributs d'un objet
    Par DeezerD dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 28/08/2007, 17h39
  4. [POO] Acces aux attributs d'un objet depuis une methode evenement :s
    Par NikoGJ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/07/2006, 20h01
  5. [POO] affectation dynamique d'une méthode à un objet
    Par Delphi-ne dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2006, 22h17

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