Bonjour à tous
Ayant fait une belle pause niveau Programmation Objet, je bloque sur un truc sûrement tout bête
Même si j'ai une solution de contournement, je voudrais quand même vous demander ce qui cloche sur mon code.
Voilà, j'ai un classe mère, une fille et une fifille. Je voudrais que la fonction Test() s'exécute dans la classe mère, la classe fille et la classe fifille.
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
28
29
30
31
32
33
34 class mere { public function __construct( ){ $this->Test( ); } protected function Test( ){ echo 'mere'; } } class fille extends mere { public function __construct( ){ parent::__construct( ); $this->Test( ); } protected function Test( ){ echo 'fille'; } } class fifille extends mere { public function __construct( ){ parent::__construct( ); $this->Test( $test ); } protected function Test( ){ echo 'fifille'; } } $test = new fifille( );
Malheureuseument, elle s'exécute 3 fois dans la classe fifille.
Je pensais que le "this" dans la classe mère appelerait le Test de la classe mère mais non.
Si je surcharge la méthode Test(), ça appelle 3 fois la méthode de la classe mère.
Bon, c'est pas sorcier à contourner mais ça me trotte dans la tête donc ça m'énerve
Merci de votre aide
Bonne journée
Partager