Bonjour,
Je viens vous voir car j'ai un problème, pourtant simple, devant lequel je sèche.
Je suis débutant en php et tente d'utiliser de l'héritage.
Un exemple de ce que je veux faire valant toutes les descriptions :
abstract class Class1 {
...
public function Class1(){
...
$this->insert();
...
}
public abstract function insert();
...
}
class Class2 extends Class1{
private $varibable;
public function Class2(){
$this->variable = "toto";
}
public function insert(){
echo 'variable ='.$this->variable;
}
}
//$class2 = new Class2();
// Résultat obtenu :
//variable =
-----------------
Voilà, j'ai écris ça a l'arrache donc merci de ne pas tenir compte des fautes de frappes
Le problème est donc : j'ai un classe abstraite avec une fonction abstraite. Dans la fonction implémentée de la classe fille je veux afficher une variable qui est locale a la classe fille, mais celle-ci est vide à l'entrée dans la fonction.
Je crois comprendre d'où vient le problème (que l'appel de insert est celui de la classe mère) mais je n'en suis pas sûr, et surtout je ne vois pas comment le résoudre sans modifier mon architecture.
Si quelqu'un peut m'éclairer je lui en serai très reconnaissant
Désolé si c'est une question classique à laquelle vous avez répondu 1000 fois mais je sèche aussi sur les mots clés pour faire une recherche. Je n'ai rien trouvé après une heure.
Merci d'avance
Edit : En mettant le "$this->insert();" dans le contructeur de la classe fille plutôt que celui de la classe mère cela fonctionne, donc c'est bien le problème que j'avais identifié, mais je ne comprends tout de même pas exactement pourquoi ça ne fonctionne pas et j'aimerais savoir s'il y a une solution autre.
Message édité par zerbus le 19-12-2013 à 23:45:19