![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 1 Dołączył: 25.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Kod <? class klasa{ function licz(&$w){$w=1;} function tekst(){ self::licz($wynik); print($wynik); } } $a=new klasa(); $a->tekst(); ?> Zasada dzialania jest taka: Tworze obiekt na podstawie klasa, ktora zawiera metode 'tekst' wyswietlajaca wynik. Sam wynik naliczany jest za pomoca funkcji licz(). Wszystko dziala pieknie, ale sama fukcja licz nie jest w moim przypadku zawsze taka sama. Tzn tworzac obiekt $a (potem $b, potem $c) chcialbym moc zdefiniowac z nim fukcje licz() o osobna dla kazdego przypadku. Cala reszta klasy pozostaje bez zmian (a nie jest krotka). Bardzo zalezy mi na tym aby nie wklepywac do programu 100 razy tej samej klasy w wersjach ze zmieniona tylko funkcja licz(). Z obiektowki raczkuje a chcac rozwiazac ten problem przychodza mi do glowy rozne pomysly: 1) a) tworze obiekt $a na podstawie klasy, ktora celowo nie zawiera fukcji licz b) definiuje w stworzonym obiekcie funkcje licz() i mam w pelni funkcjonalny obiekt 2) Przed utowrzeniem obiektu $a nadpisuja fukcje licz w klasie 3) a) tworze kopię o nazwie klasa2 na podsatwie klasy (nie zawierajacej fukcji licz) dodajac do niej fukcje licz() b) tworze obiekt $a na podstawie nowej klasa2 Wszystkie przypadki teoretycznie prowadza do celu, jednak nie wiem, ktore z nich sa mozliwe do wykonania w PHP. A jezeli nie jeden to ktory najlepiej wybrac? Prosze o maja podpowiedz (kod) jak to zrealizowac. Ten post edytował zietek 6.03.2008, 22:09:57 |
|
|
![]()
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%) ![]() ![]() |
o dziedziczeniu w programowaniu obiektowym coś słyszałeś ? jak nie to pogoogluj w tym temacie. tu masz prosty przykład o co w tym chodzi.
Ten post edytował nevt 6.03.2008, 23:45:25 -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Jeśli masz nerwy i naprwdę Ci się nudzi, to możesz w locie zmienić tą metodę na inną.
http://www.php.net/manual/pl/ref.runkit.php 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. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.06.2025 - 14:58 |