Bonjour,

Je me retrouve face à un problème de conception simple (j'en suis sûr) dont la solution me paraît bidouillée :

J'ai deux classes, A et B.

Je souhaiterais stocker des instances de B dans un attribut (tableau) de la classe A.

Chaque instance de B doit être stockée dans l'attribut A puis retournée à la variable appellante. J'utilise un compteur interne pour défiinir les clés des tableaux :

Class A
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
{
  private $objets_B = array();
  private $i = 0;
 
  public function __construct()
  {
   // ...
  }
 
  public function setObjetB()
  {
     $this->i++;
 
     $this->objets_B[$this->i] = new B;
 
     return $this->objets_B[$this->i];
  }
}
Script appellant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
$objet_1 = new A;
 
// Cette méthode crée une instance de B.
$objet_2 = $objet_1->setObjetB()
Ce qui me pose problème c'est de devoir utiliser une variable compteur ($this->i) pour que l'objet puisse être retourné correctement. Si j'avais utilisé $this->objets_B[] = new B; return $this->objet_B[]; ça n'aurait pas fonctionné (Le compteur interne ne faisant pas office).

Quelq'un peut-il m'éclairer ?

Merci d'avance