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] Propriétés comme des objets dans une classe [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 105
    Par défaut [POO] Propriétés comme des objets dans une classe
    Salut tout le monde,

    J'ai réalisé une classe comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Prop {
      public $function = 'MaFonction';
      public $params = array('A', 'B', 'C');
    }
    Pour lire les propriétés je dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Prop = new Prop();
    echo $Prop->function;
    echo $Prop->params;
    mais ce que je cherche à faire c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Prop = new Prop();
    echo $Prop->function;
    echo $Prop->function->params;
    Comment modifier la classe pour pouvoir faire ça?

    Merci d'avance

  2. #2
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    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 Prop {
      public $function;
     
    public function __construct()
    {
         $this->function = new MaFunction();
    }
    }
    class MaFunction
    {
     
      public $params = array('A', 'B', 'C');
      public function __toString()
      {
             return get_class($this);
       }
    }
     
    $Prop = new Prop();
    echo $Prop->function;
    echo $Prop->function->params;
    Un truc du genre ?

  3. #3
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 105
    Par défaut
    Merci pour la réponse speedy_g ça fonctionne bien,
    mais la valeur de la propriété $fucntion se change dynamiquement et donc pour la solution que tu m'a proposé "class MaFunction" doit être changer automatiquement

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    essaies ceci :

    Code php : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     class Prop {
     
    	public $function;
     
    	public function __construct($classe){
    		$this->function = new $classe;
    	}
     
    }
     
    class MaFunction
    {
      public $params = array('A', 'B', 'C');
     
      public function __toString(){
    	return get_class($this);
      }
     
    }
     
    class MaFunction2
    {
      public $params = array('A', 'B', 'C');
     
      public function __toString(){
    	return get_class($this);
      }
     
    }
     
    $Prop = new Prop('MaFunction');
    echo $Prop->function;
    echo $Prop->function->params;

  5. #5
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 105
    Par défaut
    Merci, mais c'est limité par seulement deux valeurs, les valeurs de $Prop->function et $Prop->function->params peuvent être changé par des centaines de valeurs

  6. #6
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    explique nous plus en détail ce que représentent tes classes du point de vue objet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. préciser le type des objets dans une classe dérivée d'arraylist
    Par JCD21 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 28/06/2008, 18h04
  2. [POO] Un objet dans une classe
    Par Arnich dans le forum Langage
    Réponses: 6
    Dernier message: 25/11/2007, 22h46
  3. Réponses: 8
    Dernier message: 16/02/2007, 15h55
  4. [POO] import d'objet dans une classe
    Par wdionysos dans le forum Langage
    Réponses: 3
    Dernier message: 01/04/2006, 21h05
  5. Réponses: 2
    Dernier message: 27/03/2005, 16h09

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