Bonjour,
je coince actuellement sur un soucis au niveau de la portée des objets.
J'ai un fichier index.php dans le quel j'instancie un objet de la classe A et un objet de la classe B:
Dans ma classe B, j'aimerai bien avoir accès à l'objet $a :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $a = new A(); $b = new B();
Cependant cela ne marche pas (je m'en doutais un peu). Maintenant le problème est de trouver un moyen pour pouvoir accèder à cet objet $a instancié dans le même fichier que l'objet $b, dans la classe B.class B {
function B() {
$a->getVar();
}
}
À part utiliser le mot clé "global" que je serai contraint de rédéclarer dans chaque méthode utilisant l'objet $a, n'y a-t-il pas une autre solution ?
Parce que certe là ça ne semble pas être très important, mais en réalité j'ai pleins d'objets auxquels je voudrai accéder dans pleins de classes et dans pleins de méthodes. Utiliser le mot clé global à chaque fois est assez génant pour moi.
N'y a-t-il pas une autre solution ?
Sinon je peux faire de index.php une classe Index avec deux attributs $this->a (l'objet $a) et $this->b (...) et je fais hériter toute mes classes de Index, et donc je pourrai accéder dans toutes mes classes à mes deux objets comme ça : $this->a->getVar(); par exemple.
Cette solution est elle meilleure ?
Cependant elle m'oblige quand même à : 1) employer $this à chaque fois, et 2) à faire hériter toute mes classes de Index.
Y a t il une solution qui m'aurait échappée ?
Merci d'avance pour vos réponses.
PS : sinon il y a la solution d'utiliser le tableau $GLOBALS et de mapper chaque valeur dans une variable, genre $a = $GLOBALS['a'] mais bof bof.
Partager