|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Bonjour tous,
Je suis tombé sur un cas étrange alors que je gérais un objet en utilisant une variante du pattern Composite. Dans le code suivant, j'arrive à accéder à une méthode privée du descendant à partir du parent. Comment cela s'explique-t-il ? Code :
D'avance merci de vos lumières.
__________________
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
Citation:
Et surtout ca : http://www.php.net/manual/fr/languag...-other-objects Citation:
__________________
http://blog.stealth35.com/ |
||
|
|
10
|
|
|
#3 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
On l'avait déjà relevé dans un autre thread mais c'est vrai que c'est assez déroutant... Enfin, pas tellement moins non plus qu'une méthode abstract protected static
Les bizarreries du langage n'arrêteront jamais de nous surprendre
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
02
|
|
|
#4 | |
![]() ![]() Thomas RambaudDéveloppeur Web Inscription : décembre 2007 Messages : 2 140 ![]() |
Citation:
je ne vois pas de problème à forcer la définition d'une méthode statique et protégée. Ni d'un point de vue technique, ni d'un point de vue conceptuel. J'ai peut-être loupé le coche ? |
|
|
10
|
|
|
#5 | |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Citation:
Quoi qu'il en soit, j'ai décider de ne pas utiliser cette technique, même si elle est la plus directe. Trop de prise de tête en perspective. Quoi qu'il en soit, je vais me coucher moins con ce soir, et c'est déjà une belle performance !
__________________
|
|
|
|
10
|
|
|
#6 | |||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Code :
Code :
Strict standards: Static function A::hello() should not be abstract
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||
|
10
|
|
|
#7 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
c'est normale, c'est pas logique de faire ça, puisqu’on ne sait pas a qui appartient la méthode, il faut utiliser une interface, ou les traits
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#8 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Tout à fait, mais un tel code en C++ par exemple ne devrait même pas compiler. D'ou l'aspect "étrange" de certains points du langages comme le late static binding qui permet de contourner ça.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#9 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com