|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : mars 2005 Messages : 58 ![]() |
Bonjour à tous
J'ai deux classes : C1 et C2 qui hérite de C1 Code :
Code :
Mon but c'est justement que la fonction soit la même pour tous mais qu'elle fasse intervenir le membre statique de chacun. Pour la petite histoire, ce que je compte faire c'est affecter un nom de table MySQL à ce membre statique et créer des fonctions plutôt complexes utilisant ce membre dans les requêtes. Le but ultime étant bien évidemment de ne pas recopier chaque fonction de C1 dans chaque classe C2 et de garder le fait que ce membre soit statique (ainsi le nom de la table est commun à chaque objet de même classe C2). Comment pouvoir surcharger un membre statique d'une classe mère et l'utiliser dans les fonctions non surchargées ? Est-ce possible en PHP5 ? Merci de votre aide, et désolé si le sujet est déjà passé ; j'ai eu beau cherché j'ai pas trouvé mon bonheur |
||||
|
|
00
|
|
|
#2 | ||
|
Membre régulier
![]() Étudiant Inscription : août 2007 Messages : 75 ![]() |
Ce que tu veux faire dans ton code n'est pas possible. La seule solution si tu veux a tout prix garder ta variable statique, est de mettre la methode print_membre dans tes classes type C2. Mais apparemment tu ne veux pas ca.
Mais a la lecture de ton probleme, je ne comprends pas pourquoi tu veux a tout prix garder cette propriete statique. Un code comme cela ne te convient il pas ? > Code :
|
||
|
|
00
|
|
|
#3 | |||
|
Invité régulier
![]() Inscription : mars 2005 Messages : 58 ![]() |
Ok merci donc de ta confirmation, ne trouvant pas d'infos sur le net j'en avais pratiquement déduis que ce n'était pas possible. Le full object en PHP n'est pour l'instant qu'une utopie
Citation:
Mon but était de trouver le moyen de factoriser au maximum mon code et éliminer quelques lignes superflues. Du coup, je pense être sur la bonne voie en dénichant un équivalent à utiliser une variable statique : Code :
|
|||
|
|
00
|
|
|
#4 | ||||
|
Membre chevronné
![]() Inscription : mai 2005 Messages : 657 ![]() |
Salut,
Par rapport à ce que tu veux faire, voici un exemple qui me parait convenir : Code :
D'ailleurs, le compilateur générera une erreur si on implémente pas getTableName() dans une classe fille : Code :
__________________
Toute la documentation Ruby on Rails : gotapi.com/rubyrails Mes articles : > HAML : langage de template pour Ruby on Rails |
||||
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() ![]() Inscription : mai 2006 Messages : 196 ![]() |
En fait il est possible de surcharger les membres et méthodes en PHP5 à l'aide des méthodes magique __set et __get, on peut aussi s'aider des méthodes magiques __isset et __unset, essaye de regarder ici :
http://www.php.net/manual/fr/languag...verloading.php J'ai essayer de comprendre mais il se fait tard la j'ai pas fini mon exemple :s je reviens demain si tu as toujours pas trouver |
|
|
00
|
|
|
#6 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
Les methodes magiques ne sont executées qui si la méthode ou la propriété appelé n'est pas publique.
Par contre, si changer la valeur par défaut est votre seul problême, vous n'avez qu'a la changer dans le contructeur de la classe enfant après avoir éxécuté le contructeur parent.
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
|
|
#7 | |
|
Invité régulier
![]() Inscription : mars 2005 Messages : 58 ![]() |
Citation:
Merci à tous pour l'aide ! |
|
|
|
00
|
|
|
#8 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
En quoi n'est-ce-pas 100% pratique ?
Si vous voulez, j'ai une classe qui moud le cafe et une autre qui fait bouillir de l'eau
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com