![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 13.02.2004 Skąd: Przasnysz Ostrzeżenie: (0%) ![]() ![]() |
Mam dwa obiekty. Jeden służy do inicjacji konfiguracji, obiektów pomocniczych, tworzenia instancji singletonów i innych drobnych rzeczy. Wszystkie obiekty w skrypcie dziedziczą z tego obiektu. Drugi obiekt dziedziczy z pierwszego i służy do wykonania konkretnego zadania.
Chciałem dodać (do pierwszego obiektu) wywoływaną zawsze z kontekstu drugiego obiektu prostą funkcję wyświetlającą print_r dla wszystkich zmiennych obiektu (żeby łatwiej było mi pisać i debugować). I tu napotkałem problem. Jeśli funkcja jest zadeklarowana w obiekcie pierwszym, to mimo tego, że wywoływana jest z obiektu drugiego, $this odwołuje się do obiektu pierwszego. Przygotowałem odrobinę kodu dla zilustrowania problemu (php5):
powyższy przykład generuje: Ponieważ w php nie ma czegoś takiego jak 'child' nie wiem co z tym zrobić. Ktoś ma jakiś pomysł jak to obejść? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 13.02.2004 Skąd: Przasnysz Ostrzeżenie: (0%) ![]() ![]() |
Nie o to chodzi. debug() powinno generować listę wszystkich zmiennych obiektu 2:
$zmienna_obj_1 odziedziczona została po obiekcie 1, $zmienna_obj_2 jest jej prywatną zmienną. Gdyby $zmienna_obj_2 była publiczna, funkcja działałaby prawie poprawnie, ale nie mogę i nie chcę zmieniać struktury obiektów po to żeby działała funkcja która tylko uprzyjemnia życie :-) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 13:56 |