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] Typer un Tableau POO


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut [POO] Typer un Tableau POO
    Bonsoir
    J'ai une classe maison qui doit appartenir a un proprietaire
    je voulais savoir si on pouvais creer un tableau de type maison ?
    Et si oui quelle est la syntaxe ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Maison $tabMaison=array;
    Je vois pas comment faire...

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 267
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 267
    Points : 8 565
    Points
    8 565
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Alex70
    J'ai une classe maison qui doit appartenir a un proprietaire
    je voulais savoir si on pouvais creer un tableau de type maison ?
    Ben non !
    Mais je ne vois pas le rapport entre le Propriétaire d'une part et la Maison qui doit être un tableau d'autre part... Plutôt l'inverse non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Proprietaire
    {
        public $maisons = array( ) ;
        ...
    }
     
    class Maison
    {
        ...
    }
     
    $proprietaire = new Proprietaire( ) ;
    $proprietaire->maisons[ ] = new Maison( ) ;
    $proprietaire->maisons[ ] = new Maison( ) ;
    Autrement tu peux étendre Proprietaire avec ArrayObject pour que celui-ci se comporte comme un tableau, mais bon.
    http://www.php.net/~helly/php/ext/sp...rayObject.html

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 267
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 267
    Points : 8 565
    Points
    8 565
    Billets dans le blog
    17
    Par défaut
    Oup, je voulais dire ArrayAccess.
    http://www.php.net/~helly/php/ext/sp...rayAccess.html

  4. #4
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    Si tu veux un tableau pour stocker tes maisons,
    c'est possible avec la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $maisons = null ; // le tableau qui stockera tes maison
     
    $maisons[] = new Maison(1) // ajout de la premère maison au tableaux
    $maisons[] = new Maison(2) // ajout de la premère maison au tableaux
    .
    .
    .
    $maisons[] = new Maison(n) // ajout de la nième maison au tableaux

  5. #5
    Inscrit

    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
    Points : 909
    Points
    909
    Par défaut
    Reaction au code poste :
    Attention entre PHP4 et PHP5 !
    En PHP4, il faut utiliser l'operateur & pour passer un objet par reference, au lieu de le dupliquer.
    En PHP5, les objets sont des ressources qui font des chichis : le passage par reference est automatique.

    A part cela, on ne peut pas creer de tableau de type maison, mais on peut restreindre le premier argument de proprio->addMaison au type maison.

    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
    class maison {
      // [...]
    }
     
    class proprio {
      private $aMaisons = array();
      public function addMaison (maison $obj) {
        $this->aMaisons[$obj->id] = $obj;
        return $obj->id;
      }
      public function isMaison ($obj) { // demonstration de instanceof
        if ($obj instanceof maison) {
          return true;
        }
      }
      public function getMaison ($id) {
        return $aMaisons[$id];
      }
      // [...]
    }
     
    $oProprio = new proprio();
    $oMaison = new Maison();
    $id = $oProprio->addMaison($oMaison);
    $oMaison = $oProprio->getMaison($id);

    Aussi, je te recommande de creer une maisonListe avec la liste de toutes les maisons ou encore un proprioList, proprioIterator, MaisonIterator ...

Discussions similaires

  1. [POO] Lire un tableau d'objets
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 23/05/2008, 17h49
  2. Réponses: 5
    Dernier message: 28/02/2008, 15h35
  3. [POO] Clone objet / tableau
    Par roduce dans le forum Langage
    Réponses: 2
    Dernier message: 26/02/2008, 15h39
  4. [POO] Identifiant et tableau
    Par kagura dans le forum Langage
    Réponses: 1
    Dernier message: 17/01/2007, 18h19
  5. [POO] Transmettre un tableau d'objet
    Par slyfer dans le forum Langage
    Réponses: 3
    Dernier message: 16/01/2007, 13h00

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