|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Inscription : avril 2006 Messages : 507 ![]() |
Bonjour à tous
J'ai besoin d'un ptit conseil... J'essaye de récupérer dans une classe fille une variable de la classe mère, en l'occurrence la connexion à la base de donnée. admetons que ceci est ma classe mère : Code :
Code :
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/www/e4bae0ff07045d753c0/web/class/recherche/recherche.class.php on line 8 j'ai essayé aussi avec l'opérateur :: Mais avec aussi peu de réussite... Comment est ce que je peux définir que le $this->BDD de la classe fille est la variable $BDD de la classe mère ? Merci d'avance pour vos réponses |
||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 834 ![]() |
$this->BDD est accessible dans ta classe fille , tu dois simplement appeler le constructeur mère dans la classe fille pour initialiser la connexion.
Code :
|
||
|
00
|
|
|
#3 | |||||
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Y a un langage où ça aurait du sens ?
Citation:
Code :
|
|||||
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 834 ![]() |
Citation:
|
|||
|
00
|
|
|
#5 | |
|
Membre confirmé
![]() Inscription : avril 2006 Messages : 507 ![]() |
Merci pour vos réponses
Ce qui me vient à l'esprit directement c'est pourquoi chercher à récuperer la connection à la base de données si je la redonne en paramètre lors de l'instanciation de ma classe fille ? Citation:
Or ce que je cherche à faire c'est à ne pas re-fournir ce paramètre mais à utiliser celui qui est présent dans la classe mère. C'est pourquoi j'essayai avec : ce qui cherche à dire que l'attribut BDD de ma classe fille est égal à celui de la classe mère. Ce n'est évidement pas tout ce que contient mon constructeur et ce n'est pas non plus le seul attribut que je voudrais récuperer dans ma classe mère. Ma question est : comment utiliser la connexion utilisée dans ma classe mère dans ma classe fille ? Merci d'avance pour vos réponses |
|
|
|
00
|
|
|
#6 | ||
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Il faut que tu révises la base de la POO, et notamment l'héritage
Il n'y a pas 2 attributs, un pour la classe mère et un pour la classe fille, mais un seul attribut qui est définit dans la classe mère et hérité dans la classe fille. Donc Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() Inscription : mars 2005 Messages : 583 ![]() |
J'ai l'impression qu'il y a une mauvaise compréhension de la POO et de l'héritage.
Déjà, classe mère, classe fille ça n'existe pas. Ou du moins utiliser ces termes est source de confusion. Classe mère -> Superclasse (ce qui ne veut pas dire grand chose dans le langage commun, et c'est tant mieux) Classe fille -> classe dérivée ou spécialisation (le dernier terme étant ma manière de voir la chose) Une superclasse factorise les membres ou/et méthodes communs à collection de classes différentes (les classes dérivées) Une classe dérivée ajoute des membres ou/et méthodes à une classe (superclasse) pour répondre à une problématique particulière. A partir du moment où on oublie la notion d'une relation "familiale" quelconque entre des classes, il est facile de comprendre qu'une instance de X et une instance de Y dérivant de X n'ont rien à voir entre elles. Tout comme deux instances de X n'ont pour unique rapport que d'être des objets de type X. Message intentionnellement obscur pour imposer une réflexion ou un questionnement un peu profonds sur la question. En espérant qu'il reste tout de même compréhensible
__________________
Pourfendeur de singletons en croisade
|
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : avril 2006 Messages : 507 ![]() |
Ok, Merci à tous pour vos réponses
Je faisais effectivement un mélange... J'essayai d'instancier d'abord ma classe mère (je continue de l'appeler comme ça désolé) puis ma classe fille alors qu'il suffisait d'instancier uniquement ma classe fille en lui fournissant les paramètres attendus. D'ou plus besoin de constructeur dans cette classe puisque c'est celui de la classe mère qui est utilisé. J'ai encore un peu de mal à m'expliquer parce qu'il faut d'abord que je comprenne bien tout ça, mais le principal : ça fonctionne comme je l'attendais. Je vais certainement comprendre de mieux en mieux au fur et à mesure que je vais l'utiliser. Merci encore. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com