Bonjour, j'ai qq questions qui me taraudent depuis 2 jours et j'ai beau cherché chez mon ami google, je ne trouve pas de réponse à mes questions.

1ere colle

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
 
class a {
 
   public $test='a';
 
}
 
class b extend a {
 
   public function view() {
   [....]
   }
 
}
 
$a = new a;
quand une classe A est etendu avec une B, si on fait une instance de A, il y a une possibilité d'accéder aux methodes de B?

et a l'inverse dans B est-il possible de modifier $a->test sans passé par un global $a (bien degeux d'ailleur).

Vu que je pense qu'il n'y a pas de solution sans instantié B, je me suis dit que dans A je pouvais include_once la class B est l'instancié a l'interieur de 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
 
class a {
 
   public $test='a';
   public $b;
 
   public function load($class){
 
      include_once('classB.php');
      $this->b = new b;
 
   }
 
}
 
$test = new a;
$test->load(b);
 
$test->b->view();
Du coup j'accède bien (la classe B n'est d'ailleurs plus une extend) à la méthode view de ma classe B. Mais voila le problème c'est que j'aimerais bien modifier $test->test depuis B. Le seul moyen que j'ai trouvé c'est de passer $test en global (cado bis).

Pour résumé, j'essaye d'ajouter des methodes à une classe déjà instancié mais je sais pas si c'est possible (desolé noob inside en POO).

2eme colle :
Si je fais un include dans une classe d'un autre fichier classe, comment rendre la "classe incluse" disponible de partout dans l'application.

Merci d'avance des réponses éventuelle