Salut tlm !
Voilà, au cours d'un développement je suis tombé sur un petit problème...
J'ai une classe "mère" qui possède plusieurs méthodes (ainsi que son constructeur) avec un nombre d'arguments variables. Le problème est que lorsque ma classe "fille" hérite du constructeur et des méthodes de la classe "mère", rien ne marche...
Un petit bout de code sera sans doute plus parlant :
Code :
- <?php
- class Mere
- {
- protected $var = array();
- public function getIt()
- {
- // récupère un tableau d'arguments passé à la méthode
- $this->var = func_get_args();
- }
- public function cnt()
- {
- return count($this->var);
- }
- }
- class Fille extends Mere
- {
- public function getIt()
- {
- parent::getIt(); // <-- Ne fonctionne pas !
- }
- public function cnt()
- {
- return parent::cnt();
- }
- }
- $m = new Mere();
- $m->getIt("toto","titi","tata" );
- echo $m->cnt(); // affiche 3
- $f = new Fille();
- $f->getIt("toto","titi","tata" );
- echo $f->cnt(); // affiche 0 au lieu de 3 !!!
- ?>
|
Au final, je suis obligé de reproduire à l'identique le traitement effectué dans la méthode de la classe mère pour la méthode de la classe fille.
Ici, ça revient donc à remplacer "parent::getIt();" par "$this->var = func_get_args();".
J'aurai aimé savoir si quelqu'un était déjà tombé sur ce "pblm" et, si oui, comment il l'avait résolu.
Merci d'avance pour vos réponses,
Lionel.
Message édité par pot2yaourt le 12-11-2007 à 20:49:43