Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Metody magiczne - przeciążenie metody, gdzie mam błąd ?
fiasko
post
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

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


  1. <?
  2.  
  3. class Student {
  4. private $porperties = array();
  5.  
  6. function __get($property)
  7. {
  8. return $this -> $porperties[$property];
  9. }
  10. function __set($property, $value){
  11.  
  12. $this -> $porperties[$property] = "Autoset {$property} jako:".$value;
  13.  
  14. }
  15.  
  16. }
  17.  
  18. $st = new Student();
  19. $st -> name = "Kamil";
  20. $st -> roll = 16 ;
  21. echo $st -> name;
  22. echo $st -> roll ;
  23.  
  24.  
  25. ?>

Uczę się obiektówki i nie wiem gdzie mam błąd . Nie mogę wyświetlić właściwości (IMG:style_emoticons/default/sad.gif) name i roll
Go to the top of the page
+Quote Post
arzach
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Dopisz do klasy
  1. public $name;
  2. public $roll

i będzie działać

Ten post edytował arzach 2.08.2011, 18:39:57
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Nie:
$this -> $porperties
a:
$this -> porperties

poducz się wpierw podstaw obiektówki (IMG:style_emoticons/default/wink.gif)

Ty arzach zaś poczytaj o metodach magicznych (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
fiasko
post
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

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


No ja się właśnie uczę (IMG:style_emoticons/default/smile.gif) - w książce był błąd u mnie - wrrrrrrrrrr
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Ale ja mówię, byś się wpierw nauczył podstaw a dopiero potem brał za coś bardziej trudniejszego (IMG:style_emoticons/default/wink.gif)
W tej chwili leżałeś na podstawach a już się brałeś za magiczne metody.

Włączy też wyświetlanie wszystkich błędów, bo po odpaleniu twojego kodu to na ekranie powinno się zrobić czarno od błędów. Może wówczas sam byś wpadł co masz nie tak.

Temat: Jak poprawnie zada pytanie
Tu masz napisane jak włączyć wyświetlanie wszytkich błędów. Przy okazji przeczytaj cały watek
Go to the top of the page
+Quote Post
fiasko
post
Post #6





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

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


No nie zupełnie - po prostu tak było w książce , a jak stosować akcesory dostępu to ja wiem. Generalnie jadę naukę z książki więc nie moja wina , że autor wprowadził metody magiczne (IMG:style_emoticons/default/smile.gif)

Mam jeszcze pytanie dlaczego egzemplarz klasy jest wywoływany przez autora tak : $st = new Student() , a nie np. tak $st = new Student; ?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Bo można i tak i tak. Lepiej jednak z () bo widać od razu co i jak (IMG:style_emoticons/default/smile.gif)
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: 26.09.2025 - 00:57