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] Déclaration et typage d'un attribut


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par défaut [POO] Déclaration et typage d'un attribut
    Bonjour,
    Ma question est simple :
    comment dans un constructeur
    declarer un attribut comme etant un objet?
    Style comme pour un tableau ;
    $this->requete=array();
    Je voudrais un code de type
    $this.monObjet=object();
    Ce qui n'existe pas...
    je peux faire ça $this.monObjet=settype($monObjet, "object");?
    Merci

  2. #2
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    Tu peux faire quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->monObjet = new stdClass;
    $this->monObjet sera un objet (le plus basique de php)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par défaut
    merci beaucoup
    j'essaye de suite

  4. #4
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par laurentg2003 Voir le message
    je peux faire ça $this.monObjet=settype($monObjet, "object");?
    settype ne supporte que quelques format courants regarde la doc.

  5. #5
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Pourquoi ce ne serait pas possible ?

    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
     
    class MyClass{
        private $items = array();
     
        public function __construct(){}
     
        public function addItem(MyClassItem $item){
                $this->items[] = $item;        
        }
    }
     
    class MyClassItem{
        private $name;
        public function __construct($name = null){ $this->name = $name; }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $myclass = new MyClass();
    $myclass->addItem(new MyClassItem('name test'));
    La seule limitation est en effet de ne pas pouvoir typer directement un membre. Si tu souhaites faire ca proprement tu devras créer tes propres méthodes de valorisation.

  6. #6
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function __construct($name = null){ $this->name = $name; }
    bonjour ThomasR,

    Ton explication est brillante . Mais j'avoue qu'il y a un point sur lequel j'ai besoin d'éclaircissements. Dans le constructeur la variable $name est affectée à null, par quel 'miracle' récupère-t-on la bonne valeur alors ?
    Une autre question (peut être idiote). Le constructeur dans MyClass est il là juste pour une histoire de cosmétique ou a t il un intérêt particulier ?
    merci

  7. #7
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Dans le constructeur la variable $name est affectée à null, par quel 'miracle' récupère-t-on la bonne valeur alors ?
    Elle est affectée a null par défaut si aucune valeur n'est passé en paramètre. Dans mon exemple je mets "name test" en paramètre du constructeur.

    Une autre question (peut être idiote). Le constructeur dans MyClass est il là juste pour une histoire de cosmétique ou a t il un intérêt particulier ?
    Dans l'exemple oui ca tient de l'esthétisme puisque si j'enlève la déclaration du constructeur, la classe MyClass aura par défaut un constructeur publique sans paramètre.

  8. #8
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Elle est affectée a null par défaut si aucune valeur n'est passé en paramètre.
    Ok, c'est bien le 'part défaut' qui m'interrogé. Maintenant c'est tout à fait clair, j'avais vu le passage de valeur au moment de l'appel au constructeur.

    Tout est clair merci

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/11/2008, 13h20
  2. [POO] Gestion d'un tableau en attribut
    Par Shandler dans le forum Langage
    Réponses: 4
    Dernier message: 18/01/2007, 22h48
  3. [POO] Déclaration des varaibles?
    Par kalash_jako dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2006, 19h36
  4. Réponses: 4
    Dernier message: 11/05/2006, 16h34
  5. Réponses: 7
    Dernier message: 13/02/2006, 18h13

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