PHP5, acces aux classes parentes... - PHP - Programmation
Marsh Posté le 29-10-2006 à 09:30:07
Code :
|
Je me sers de ça pour acceder au constructeur de ma classe parente. J'ai jamais testé pour acceder à d'autres méthodes en fait.
Marsh Posté le 29-10-2006 à 09:48:03
Ben y'a rien à faire, t'appelle la méthode de manière normalle
Marsh Posté le 29-10-2006 à 09:50:20
je vais situer le contexte :
class 1 est une class générale
class 2 est ma class de couche d'acces BDD
class 3 est une class secondaire
en instanciant ma class principale, j'instancie également ma couche d'acces BDD
l'une de ces méthode se trouvant dan mon objet BDD gerant mes connexions, me permet d'executer mes requetes.
Mon objet 3 a besoin d'executer lui aussi des requetes et instancier un autre objet BDD serait bete alors qu'un existe deja...
parrent:: ne veux pas fonctionner chez moi pour cet usage...
Marsh Posté le 29-10-2006 à 12:23:21
the_bigboo a écrit : je vais situer le contexte : |
Mais pourquoi t'utilises par $this->pouet() de manière normalle ? Je pige pas là
Marsh Posté le 29-10-2006 à 12:38:14
Code :
|
parce que la methode que je souhaite appelée est située dans class 2.
Dans ce que j'ai donné plus haut, c'est l'appel parent::pouet(); qui ne fonctionne pas.
Marsh Posté le 29-10-2006 à 12:41:06
Okay, il faut que tu passes une instance de class1 dans ton obj3 si j'ai pigé
Code :
|
Et donc
Code :
|
Marsh Posté le 29-10-2006 à 12:45:05
Parce que parent, c'est la class dont est héritée ta classe en cours. Pour class1, ça va être class2.
Class3 n'a strictement aucun moyen de savoir où il se trouve, et c'est logique, vu que plusieurs objets peuvent contenir un même autre...
Marsh Posté le 29-10-2006 à 13:27:40
je trouve pas ca tres logique, car pour class2, je peux acceder aux méthodes parentes par $this>method() de par l'héritage.
Dans ce cas je ne vois pas l'utilié de parent::
Marsh Posté le 29-10-2006 à 13:39:06
Non c'est très logique. Imagine deux classes :
class pouet |
Si maintenant tu file la même instance :
$obj3 = new class3(); |
Selon ta logique, qui serait parent ? tagada ou pouet ? Parent ne peut être que la classe héritée, ce qui est parfaitement logique.
Ensuite, parent permet par exemple d'appeller la méthode parente si elle serait redéfinie :
class class1 { |
Si dans class2 tu veux appeller la pouet du parent, t'es bien obligé d'utiliser parent:: pouet(), sinon c'est tagada qui serait affiché
Marsh Posté le 29-10-2006 à 02:54:58
Salut
J'ai créé trois class class1, class2, et class3 . Je les instancie comme suit :
Le but est de pouvoir accéder a une méthode déclarée dans class1 , qui est héritée de class2 depuis une méthode de class3.
Une idée de comment procéder ?
Merci