![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 23.11.2006 Ostrzeżenie: (0%)
|
Witam, mam problem , jestem w trakcie przerabiania ksiazki php5 zaawansowane programowanie, zaloze sie ze wiele osob z forum przerabialo ta ksiazke, mianowicie chodzi o to:
Kod interface Observer{ public function update(); } abstract class Widget implements Observer { protected $internalData=array(); abstract public function draw(); public function update(Observable $subject){ $this->internalData=$subject->getData(); } } to jest kawałek aplikacji z w/w ksiazki, i uruchamiajac testowa aplikacje sprawdzajaca czy obiekty dzialaja wywala nastepujacy blad Fatal error: Declaration of Widget::update() must be compatible with that of Observer::update() in D:\Program Files\xampp\htdocs\php5\widget\abstract_widget.php on line 7 w czym tkwi błąd? przecież interfejsy mają na celu określać tylko 'gołe' metody, bez sposobu implementacji itd, zreszta przykład przepisałem z książki, zeby zobaczyc jak to działa gdy zmienie interfejs na Kod interface Observer{ public function update(Observable $subject); } to kod działa i pokazuje mi tabele z najnowszymi cenami instrumetow, pozdrawiam |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
interfejs definiuje metode jak rowniez parametry do niej przekazywane, a u ciebie to sie rozni
Cytat zreszta przykład przepisałem z książki ksiazki maja to do siebie, ze są w nich byki |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 23.11.2006 Ostrzeżenie: (0%)
|
dzięki, dokladnie o to mi chodzilo, bo nie bylem pewny , z tego co czytalem interfejsy definiuja metody, bez ciała ani parametrow, widocznie zle czytalem, pozdrawiam
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 23:51 |