![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 19.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio wglebiam sie w tajniki OOP w PHP5, mam ambitny cel napisac aplikacje implementujaca wzorzec MVC i mam na to 2 miesiace. Mam nadzieje, ze mi sie uda ;p W kazdym badz razie korzystam z ksiazki "PHP 5 Zaawansowane programowanie" i materialow tu i tam znalezionych w sieci. Postanowilem sobie przerobic srednio-zaawansowany przykladzik z rozdzialu 3, no i napotkalem na taki problem:
W ksiazce jest interfejs:
Czy w interfejsach powinno sie w ogole definiowac metody abstrakcyjne ? Przeciez one same w sobie takie moga byc pozniej juz w implementacji danej klasy - jezeli zadeklarujemy klase jako abstract. I dalej w ksiazce jest klasa PropertyObject abstrakcyjna, bo nie ma zaimplementowanej funkcji validate, a np. klasa Entity dziedziczaca po PropertyObject juz nie jest abstrakcyjna (mimo, ze w implementacji metody validate() jest tylko komentarz - czy sprawia on, ze dzieki temu komentarzowi jest juz implementacja (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ? ). Dziwna sprawa, w kazdym badz razie to nie dziala i wywala: Fatal error: Access type for interface method Validator::validate() must be omitted in .... Jak zamienilem abstract na public, to smiga... Blad w ksiazce, czy ja zle mysle ? Ten post edytował Reigon 13.03.2007, 21:59:09 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 17:51 |