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] Comment afficher le nom de l'attribut et non pas sa valeur


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut [POO] Comment afficher le nom de l'attribut et non pas sa valeur
    Bonjour à tous,

    J'ai un petit doute sur une démarche à faire
    J'utilise une fonction magique pour donner une valeur à un attribut

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    protected $opt_class;
     
    public function __set($name, $value){
    		if(property_exists(__CLASS__, $name)) $this->$name = $value;		
            	else echo '<p>Code error : <b><em>"'.$name.'"</em></b> is not an existing property in the class : '.__CLASS__.'</p>';
    	}

    Dans ma même classe, j'ai une fonction qui va donc attribuer une valeur ($valeur) au nom ($name)

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //en admettant que $name == opt_class
    public function Set_Option_Attribut($name,$value){
    		$this->$name = $value;
    		echo $this->$name;
    }

    Ce que j'aimerais faire c'est de pourvoir afficher le nom et sa valeur de l'attribut.

    Alors je peux le faire ainsi, en récupérant la valeur de mes variables passés dans ma fonction
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function Set_Option_Attribut($name,$value){
    		$this->$name = $value;
    		echo $name;
    		echo $value;
    }

    Mais pour moi ca ne met pas de sens. Alors j'aimerai le faire ainsi, mais comment afficher le nom de l'atribut, pas sa valeur.
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function Set_Option_Attribut($name,$value){
    		$this->$name = $value;
     
    		echo $this->$name; //Ca va afficher la valeur de l'attribut en question
     
    }

    Merci pour votre aide
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    déjà en POO sous php on appel les variables de la classe ainsi:
    $this->variable
    pour $variable...

    Ensuite, crée 2 variables au début de ta classe et tu attribut tes données à cette ci...
    genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public $attribut = '';
    public $valeur = '';
     
    public function Set_Option_Attribut($name,$value){
    		$this->attribut = $name;
    		$this->valeur = $value;
    		return $this;
    }
    tu n'as plus qu'a récupéré ensuite tes entrée ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $objet= new taclass();
    $objet->Set_Option_Attribut('toto','tata');
    $objet->attribut : te renverra 'toto'
    $objet->valeur : te renverra 'tata'

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Remarque:
    @Ze AzAr ce que tu as dit est vraie mais ça ne vaut pas la peine d'utiliser des methodes getter/setter si on déclare les propriétés public.

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    en fait je ne suis pas un grand connaisseur du "_set" "_get"

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    ok, mais si j'ai

    (pour faire cours)
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    protected $class;
    $this->class="toto"

    Puis ensuite je fait
    il va afficher
    toto
    J'aimerai assui afficher "class"?

    Je ne peux pas faire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public $attribut = '';
    public $valeur = '';
     
    public function Set_Option_Attribut($name,$value){
    		$this->attribut = $name;
    		$this->valeur = $value;
    		return $this;
    }
    Car en réailité j'ai 10 attributs qui nt tous 10 valeurs.

    J'aimerais juste savoir s'il y la possiblité d'affiché le nom mon attribut.

    Si par exemple j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $this->class="toto";
    $this->title="Mom titre"
    $this->selected="selected"
    J'aimerais afficher:
    class toto
    title mon titre
    selected selected
    par exemple
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Il te suffit de parcourir l'objet grâce à foreach().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($this as $attr => $val) {
        echo $attr, ' => ', $val;
    }

Discussions similaires

  1. Comment afficher le nom d'une variable et non sa valeur?
    Par philocratia dans le forum Général Python
    Réponses: 2
    Dernier message: 15/05/2014, 12h05
  2. récuperer le nom d'un attribut (et non pas sa valeur)
    Par oups! dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 20/11/2012, 14h00
  3. Comment récupérer le nom d'un attribut XML ?
    Par mappy dans le forum ASP.NET
    Réponses: 3
    Dernier message: 06/08/2007, 17h26
  4. Réponses: 3
    Dernier message: 11/07/2007, 10h10
  5. [POO] Comment retourner le nom d'un objet
    Par mkael29 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/09/2006, 06h47

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