![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 28.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
mam problem z wywołaniem metod w klasie dziecko i po przejrzeniu 2 książek i kilku manuali i kursów nie wiem czemu tak się dzieje.
klasa rodzic
klasa dziecko
obiekty tworzone są w jednym pliku plik1.php
a następnie w innym odtwarzane plik2.php
|
|
|
![]()
Post
#2
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
bo mi sie zdaje ale błąd robisz w $admin = clone $obiekt; bo zamieniasz administratora na użytkownika w czego wyniku masz tak jakbys dał do obu zmiennych new użytkownik...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat $admin = clone $obiekt; // przypisuje zmienne do dziecka nie za bardzo czaisz co robi clone. clone klonuje ci obiekt a ty to co sklonujesz przypisujesz do $admin, nadpisujac tym samym starą zawartosc $admin. Teraz $admin nie jest juz obiektem admnistrator, ale jest obiektem uzytkownik, co tlumaczy twoj komunikat bledu
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Ja mam tylko pytanie: Po co tworzysz dwa obiekty? Osobno Administrator i osobno Użytkownik - nie widzę sensu, ale może nie rozumiem kontekstu... Możesz wyjaśnić?
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: 3 Pomógł: 0 Dołączył: 28.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
sprawa wygląda tak, że w plik1.php zanim tworzone są obiekty dzieci są wykonywane operacje na rodzicu i jest tam trochę zmiennych a potem jak worze klasy dziecko to te zmienne znikają. Dlatego jest klon. Operacje klas dziecko wykorzystywane są dopiero w plik2.php
Ten post edytował Corwin 28.12.2006, 18:40:33 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
no dobra, wkleiles kupe kodu, nikomu sie nie bedzie chcialo tego wertowac..
jakie jest więc twoje pytanie? nie wywolasz metody lista_admin skoro wywolujesz ją na rzecz obiektu klasy uzytkownik. Ten post edytował em1X 28.12.2006, 18:37:19 -------------------- eh, co polska wódka to polska wódka
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 28.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja mam tylko pytanie: Po co tworzysz dwa obiekty? Osobno Administrator i osobno Użytkownik - nie widzę sensu, ale może nie rozumiem kontekstu... Możesz wyjaśnić? Pozdrawiam. Ten system będzie mieć użytkowników kilku rodzai mają oni część cech i metod wspólnych, ale część nie. chciałem rozdzielić różnice i operacje bezpośrednio na danych użytkownikach po klasach dziecko a cechy wspólne trzymać w rodzicu. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
W takim wypadku wg. mnie, z dziedziczeniem trafiłeś kulą w płot. Po to masz dziedziczenie, aby tworzyć specjalizacje poprzez tworzenie od razu obiektu dziecka, a nie najpierw rodzica, a potem dziecka. Jeśli jednak bardzo chcesz zachować taka strukturę, to wykonaj operacje dla rodzica w kontekście klasy, a nie obiektu. Skorzystaj z właściwości jakie dają metody i składowe statyczne. Kiedy już skonfigurujesz klasę, wyprowadź z niej obiekty dzieci. Wtedy każdy będzie mógł odczytać np. zmienne statyczne w klasie macierzystej.
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
#9
|
|
![]() Grupa: Zarejestrowani Postów: 848 Pomógł: 0 Dołączył: 7.07.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat sprawa wygląda tak, że w plik1.php zanim tworzone są obiekty dzieci są wykonywane operacje na rodzicu i jest tam trochę zmiennych a potem jak worze klasy dziecko to te zmienne znikają. Dlatego jest klon. Operacje klas dziecko wykorzystywane są dopiero w plik2.php Jeśli dobrze zrozumiałem, to klonowanie nie rozwiąże problemu. Możesz zrobić albo tak:
Albo, jeśli te zmienne są chronione, to zrobić jakąś metodę w klasie administrator, która by robiła to, co powyżej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 23:21 |