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 :

Tableau de Classe [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Par défaut Tableau de Classe
    Bonjour,

    Je souhaite créer une classe A et une classe B. La classe A contient un ensemble de variables et le calsse B un autre ensemle de variables dont une est un tableau de la classe A. Comment on peut faire ça ?

    Class A
    {
    $var1
    $var2
    $var3

    function creer
    function modifier
    ...
    }

    Classe B
    {
    $vara
    $varb (tableau de Class A) comment la déclarer ?
    $varb = array(new A) ou autre

    function creer
    Comment ensuite accéder à ce tableau
    $varb[0]->var1 ou autre

    Merci de votre aide précieuse

  2. #2
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    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
    class A {
      public $var1;
      public $var2;
      public $var3;
      // ...
    }
     
    class B {
      public $vara;
      public $varb = array();
      public function __construct() {
        // contructeur. ajoute un A dans $varb
        // (juste un exemple)
        $this->varb[] = new A;
      }
    }
     
    $b = new B;
    $b->varb[] = new A; // ajoute un 2iem A
     
    $b->varb[0]->var1; // accède à var1

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Par défaut
    Bonjour,

    Je n'ai toujours paas résolu mon problème mais j'ai abandonné l'idée de tableau de classe (je serais preneur s'il y a une solution).

    Cpendant voici le cas que j'ai qui me ressort une erreur :
    Call to a member function Charger() on a non-object

    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
    23
    24
    25
    26
    27
    Class A
    {
     public $var1=null;
     ...
     public $B=null;
     
    function __construct($id)
      $B = new B
      Charger($id)
     
    function Charger($id)
      $this->var1="toto";
      ....
      $this->B->Charger($id,$_SESSION['autre']);
    }
     
    Class B
    {
     public $var1=null;
     
    function __construct($id,$autre)
      Charger($id,$autre)
     
    function Charger($id,$autre)
      $this->var1="titi";
      ....
    }

    Je n'arrive pas à charger les données dans la premiere classe $this->B->Charger

    Dans cette histoire A est un objet sans libellé dans une table et B est une traduction du libellé de cet objet (j'aurais préféré toutes les traductions d'où ma première demande de tableau de classe)

    Merci pour votre aide

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Dans le constructeur tu crées une variable locale à la méthode en faisant "$B = new B;".

    Si tu veux instancier la propriété B de l'objet, il faut que tu fasses "$this->B = new B();"

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Par défaut
    Merci, c'était bien le this qui manquait

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

Discussions similaires

  1. accesseur tableau de class A dans une class B
    Par dropsoil dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/05/2009, 22h06
  2. [POO] Tableau et classe
    Par altair8080 dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2006, 17h32
  3. Réponses: 5
    Dernier message: 11/05/2006, 15h15
  4. Suppression d'un tableau de classe de la memoire
    Par jhary07 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 14/11/2005, 09h23
  5. tabeau de classe = tableau de classe
    Par Bason_sensei dans le forum C++
    Réponses: 25
    Dernier message: 12/10/2005, 14h01

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