![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Czy da się uzyskać w klasie rodzicu nazwę klasy potomnej? Użycie is_subclass_of" title="Zobacz w manualu PHP" target="_manual odpada, bo nie będę wiedział w klasie rodzicu, jaka klasa będzie dziedziczyć...
-------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
a jaka potrzeba skłania cię do takiej konstrukcji? generalnie nie ma ona większego sensu ponieważ ta sama klasa rodzica może mieć wiele klas potomnych w dodatku wielopokoleniowych
![]() -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że klasa "tata" posiada kilka metod, z których korzystają różne klasy potomne. W jednej z tych metod potrzebuję jakiegoś unikalnego stałego identyfikatora dla klasy potomnej, który najlepiej jakby był właśnie tworzony w rodzicu (np. właśnie nazwy klasy). Nie chcę robić sztywnej listy klasa-ID. Niby mogę użyć parent::... w klasie potomnej, ale kombinuję, może automatycznie jakoś... Znalazłem w manualu coś podobnego: Late Static Bindings, ale to też wymaga ode mnie ingerencji w klasy potomne, czego chciałbym uniknąć (jest ich sporo).
Być może to co robię, to przerost formy nad treścią, no ale ugryzło mnie... -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Wywołaj po prostu
Spotkałem z tym problemem. Troszkę od innej strony - gdy chcemy w klasie rodzica wywołać metodę z klasy rodzica, przesłoniętą w pochodnej ![]() Problem można rozwiązać tylko przez kolejną metodę w klasie pochodnej
A teraz:
Pozdrawiam -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Cysiaczek. Zupełnie mi nie wpadło, żeby dodać $this do get_class()
![]() ![]() Pozdr! -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Cysiaczek
Trochę to mi wygląda na jakieś kombinowanie na siłę. Jeżeli dana metoda nie może być przysłonięta, to się to blokuje, jeżeli może, to niech martwi się o działanie osoba która ją nadpisze. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Popieram Sedziwoja - cos zes Cysiaczek namieszal
![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 246 Pomógł: 31 Dołączył: 13.11.2006 Skąd: się znamy? Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Goldenline: Łukasz Rodziewicz
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Nic nie namieszałem
![]() Chodziło mi o wywołanie własnej wersji metody przez klasę rodzicielską, której dziecko ją przesłoniło. To, ze można dać final, private itd. to wiadomo. Nie karzę nikomu stosować tego, co napisałem - ot ciekawostka, jak takie coś można w php zrobić i tyle. Miałem taką sytuację raz i uznałem, że popełniłem błąd projektowy ![]() Pozdrawiam @empathon - ![]() -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Miałem taką sytuację raz i uznałem, że popełniłem błąd projektowy ![]() No i dla tego powinieneś to zaznaczyć, aby ktoś sobie nie pomyślał że to normalna i poprawna praktyka. Bo wiadomo że się robi czasem brzydkie rzeczy, ale jak się z tego forum ludzie uczą, to niech chociaż dobrze ;] -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
No dobra a co z klasą statyczną. Właśnie się natknąłem na ten problem.
Jak takie wywołanie metody test() ma zwrócić nazwę klasy dziecka. Przykład może nieco archaiczny więc dam jeszcze inny. Rozszerzanie klasy która jest singletonem. Jak pobrać w metodzie getInstance() nazwę klasy rodzica, żeby nie trzeba było nadpisywać tej metody w klasie potomnej? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 12:38 |