Bonjour à vous mon problème et pas tres compliqué mais je sais pas comment le résoudre...
Quand je créé une instance de la classe Fille, la méthode Fille::loadDefault() et appellé dans la méthode Maman::load() (c'est le polymorphisme : liaison dynamique des méthodes)
Sauf que j'ai un membre de la classe mere qui n'est pas accessible depuis ma méthode surchargée Fille::loadDefault().
Dans Maman::load() j'initialise un membre privé (un DOMDocument en l'occurence) qui est utilisé dans loadDefault() que ce soit depuis la classe Maman ou Fille. SAuf que dans Fille, il me di que je fais appelle a un méthode qui n'existe pas (car je fais appelle a la méthode DOMDocument::createElement().
En débuggant à coup de var_dump() je me suis aperçu que jusqu'avant l'appelle de loadDefault() mon membre était bien initialisé. Sauf que des que je passe dans Fille::loadDefault().. l'initialisation a disparu comme si PIOUFFF!
Un idée sur le problème??
Modifié par MoOx (16 Apr 2007 - 10:05)
Class Maman {
public function __construct() {
$this->load();
}
public function load() {
if (...) {
/// du code
} else {
$this->loadDefault();
}
}
public function loadDefault() {
//...
}
Class Fille extends Maman {
public function __construct() {
parent::_construt();
//...
}
public function loadDefault() {
//...autre chose que Maman::loadDefault()
}
Quand je créé une instance de la classe Fille, la méthode Fille::loadDefault() et appellé dans la méthode Maman::load() (c'est le polymorphisme : liaison dynamique des méthodes)
Sauf que j'ai un membre de la classe mere qui n'est pas accessible depuis ma méthode surchargée Fille::loadDefault().
Dans Maman::load() j'initialise un membre privé (un DOMDocument en l'occurence) qui est utilisé dans loadDefault() que ce soit depuis la classe Maman ou Fille. SAuf que dans Fille, il me di que je fais appelle a un méthode qui n'existe pas (car je fais appelle a la méthode DOMDocument::createElement().
En débuggant à coup de var_dump() je me suis aperçu que jusqu'avant l'appelle de loadDefault() mon membre était bien initialisé. Sauf que des que je passe dans Fille::loadDefault().. l'initialisation a disparu comme si PIOUFFF!
Un idée sur le problème??
Modifié par MoOx (16 Apr 2007 - 10:05)