Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP5] Interfejsy
lDoran
post
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

Ostrzeżenie: (0%)
-----


Witam właśnie uczę się programowania obiektowego z książki "PHP5. Zaawansowane programowanie i napotykam błąd:
Cytat
Fatal error: Access type for interface method Openable::open() must be omitted in C:\WebServ\httpd\php5\interface.Openable.php on line 5

  1. <?PHP
  2.  
  3. interface Openable {
  4.  
  5. abstract function open();
  6. abstract function close();
  7. }
  8.  
  9. ?>

  1. <?PHP
  2.  
  3. require_once('interface.Openable.php');
  4.  
  5.  
  6. class Door implements Openable {
  7.  
  8. private $_locked = FALSE;
  9.  
  10. public function open() {
  11. if($this -> _locked) {
  12. echo 'Nie można otworzyć drzwi. Są zamknięte na klucz.';
  13. }
  14. else {
  15. echo 'skrzyp...<br />';
  16. }
  17. }
  18.  
  19. public function close() {
  20. echo 'Trrrrach!!<br />';
  21. }
  22.  
  23. public function lockDoor() {
  24. $this -> _locked = TRUE;
  25. }
  26.  
  27. public function unlockDoor() {
  28. $this -> _locked = FALSE;
  29. }
  30. }
  31.  
  32. ?>

  1. <?PHP
  2.  
  3. require_once('interface.Openable.php');
  4.  
  5.  
  6. class Jar implements Openable {
  7.  
  8. private $contents;
  9.  
  10. public function __construct($contents) {
  11. $this -> contents = $contents;
  12. }
  13.  
  14. public function open() {
  15. echo 'Słoik został otwarty.<br />';
  16. }
  17.  
  18. public function close() {
  19. echo 'Słoik został zamknięty.<br />';
  20. }
  21.  
  22. }
  23.  
  24. ?>
  1. <?PHP
  2.  
  3. require_once('class.Door.php');
  4. require_once('class.Jar.php');
  5.  
  6.  
  7. function openSomething(Openable $obj) {
  8. $obj -> open();
  9. }
  10.  
  11. $objDoor = new Door();
  12. $objJar = new Jar('galaretka');
  13.  
  14. openSomething($objDoor);
  15. openSomething($objJar);
  16.  
  17. ?>

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Usuń abstract w interfejsie
Go to the top of the page
+Quote Post
lDoran
post
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

Ostrzeżenie: (0%)
-----


faktycznie przyczyną było abstract, jednak nie rozumiem dlaczego w książce je podali o.O
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat(lDoran @ 11.01.2010, 19:03:31 ) *
faktycznie przyczyną było abstract, jednak nie rozumiem dlaczego w książce je podali o.O

Niestety takie sa uroki ksiazek dlatego nie polecam kopiowac linia po lini bo to nic nie daje a po drugie kod przewaznie jest dziurawy jak ser szfajcarski.
Go to the top of the page
+Quote Post
darko
post
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(lDoran @ 11.01.2010, 19:03:31 ) *
faktycznie przyczyną było abstract, jednak nie rozumiem dlaczego w książce je podali o.O

Zmień książkę (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
230005
post
Post #6





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Nie zmieniaj książki, raczej zaciśnij zęby, bo takich (i poważniejszych) błędów jest w niej niewiarygodnie dużo. Warto ją jednak przeczytać, bo jest po prostu dobra.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:44