Équivalent à « parent:: » fonctionnant avec les variables

Équivalent à « parent:: » fonctionnant avec les variables - PHP - Programmation

Marsh Posté le 10-11-2002 à 01:48:21    

« Parent:: » est très pratique pour accédé à des fonctions de la class parente, mais (contrairement a ce qu'affirme la doc) ça ne fonctionne pas encore pour les variables.
Alors, y a t'il moyen d'accéder aux variables de la class parente avec PHP ?

Reply

Marsh Posté le 10-11-2002 à 01:48:21   

Reply

Marsh Posté le 10-11-2002 à 12:25:16    

Les variables ont elles une classe parente?
Ca pourait expliquer pourquoi a marche pas.
 
PS : J'utilise pas la partie objet de php alors ma question est peut être très conne.

Reply

Marsh Posté le 10-11-2002 à 13:12:02    

en utilisant le $this->attributParent, tu fait appel à la variable parent...
en héritant, tu ne fais que redéfinir de façon plus complète la classe, donc tout les attributs du parent sont des attributs de la classe héritée. (je vois pas trop ou se situe ton problème...)


---------------
...oups kernel error...
Reply

Marsh Posté le 10-11-2002 à 15:01:38    

Merci de me le rappeler. ;) C'est comme ça que je fais actuellement, et je trouve pas ça bien propre.
 
J'aurais du dire : accéder explicitement aux variables de la class de base. Je chipote peut-être, mais il suffit que tu aies une méthode ou une variable de même nom dans les dexu class (si je pouvais, ça me serait utile), et c'est fini. On ne peut même pas accéder aux variables en spécifient le nom (ma_class::variable), c'est encore plus emmerdant !
 
En tout cas, je ne crois pas que ce soit possible.

Reply

Marsh Posté le 10-11-2002 à 15:50:26    

éclaire moi un peu.
Je n'ai pas tellement d'expérience dans ces autres langages au niveau de l'héritage, c'est pourquoi que je demande ton avis sur ce qui suit :)
 
supposons :  
- en java, c++ ou autre tu aies une classe qui contient certains attributs et méthodes.
- tu la dérives, en spécifiant des attributs de même nom mais en modifiant le type ou la valeur, et en redéfinissant les méthodes en changeant le nombre d'arguments.
 
Dans ta classe dérivée, tu peux accéder aux méthodes de la classe parente, mais les attributs seront ceux redéfinis par ta classe dérivée et ceux de la classe parente (non redéfinis). non ?
 
moi ça me semblerait logique, si tu ne veux pas modifier ces attributs, tu leur donne un autre nom.  Donc en php aussi...


Message édité par ethernal le 10-11-2002 à 15:51:52

---------------
...oups kernel error...
Reply

Marsh Posté le 10-11-2002 à 16:36:01    

Qu'est qui te fait croire que je m'y connais en langages objects ? Mais airs supérieurs ? ;)
Non, sans déconner, je suis complètement incompétent en construction object. Ça doit être pour ça que je pause ce genre de question...
En tout cas tu as sûrement raison.
 
Mais ce qui m'a trompé c'est (extrais de la doc officielle) :

Citation :

parent
 
Il arrive que vous ayez à écrire du code qui faire référence aux variables et fonctions des classes de base. C'est particulièrement vrai si votre classe dérivée est une spécialisation de votre classe de base.  
 
Au lieu d'utiliser le nom litéral de votre classe de base dans votre code, vous pouvez utiliser le mot réservé parent, qui représente votre classe de base (celle indiqué par extends, dans la déclaration de votre classe)[...]
 
En commentaire :
- There is an implication here that variables of the parent class are available.  You can't access variables using parent::

http://www.php.net/manual/fr/keyword.parent.php
Ou encore :

Citation :

Parfois, il est pratique de faire référence aux fonctions est variables d'une classe de base, ou bien d'utiliser des méthodes de classes qui n'ont pas encore d'objets créés. L'opérateur :: est là pour ces situations[...]

http://www.php.net/manual/fr/keywo [...] otayim.php
Et ceci en Anglais comme en Français (les fautes sont d'origine). J'en ai bêtement déduit que c'était possible.


Message édité par kalex le 10-11-2002 à 16:39:01
Reply

Marsh Posté le 11-11-2002 à 01:15:20    

:lol: bha on croise de tout sur ce forum, du débutant au spécialiste, comme je suis pas un master en objet... :D
 
il est bien spécifié en commentaire

Citation :

You can't access variables using parent::


 


---------------
...oups kernel error...
Reply

Marsh Posté le 11-11-2002 à 15:36:54    

Oui, mais quand tu télécharges la doc tu n'as pas les commentaires ! :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed