Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> funkcja dostepowa, __get, __set
d3iv
post 13.08.2005, 16:08:50
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 31.07.2005

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


hmm.. w zasadzie chodzi o to ze wartosc ktora zostaje przekazana do atrybutu powinna byc przefiltrowana przez __get w calej klasie atrybut moze przyjmowac jedynie wartosci wieksze od 100 a tak sie nie dzieje :| __get przyjmuje wszytkie wartosci ktore sa przypisane do atrybutu... dzieki z gory za pomoc..
  1. <?php
  2.  
  3. class test
  4. {
  5.  
  6.  var $atrybut;
  7.  
  8. function __get($nazwa)
  9. {
  10. return $this->$nazwa;
  11. }
  12.  
  13. function __set($nazwa, $wartosc)
  14. {
  15. If ($wartosc > 100)
  16. $this->$nazwa = $wartosc;
  17. else
  18. $this->$wartosc = 'Blad!';
  19. }
  20.  
  21. }
  22.  
  23. $spr = new test();
  24. $spr->atrybut = 2;
  25. echo $spr->atrybut;
  26.  
  27. ?>


16.08.2005----------------------------------------------->

odp. Dowiedzialem sie z innych zrodel ze poprostu nie moze byc zadeklarowany atrybut poniewaz magiczne funkcje takie jak __set __get czy __call pracuja na nieistniejacych atrybutach :] czyli po usunieciu var $atrybut wszystko bedzie dzialac .. moze sie komus kiedys przyda tongue.gif pozdro

Ten post edytował d3iv 16.08.2005, 09:26:06
Go to the top of the page
+Quote Post
M4chu
post 16.08.2005, 22:46:29
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


Tak na marginesie w PHP5 zamiast var uzywamy public/protected/private.
Go to the top of the page
+Quote Post
d3iv
post 17.08.2005, 08:03:26
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 31.07.2005

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


ale mozna powiedziec ze var jest rownowazne z public.. w sumie to zadne uchybienie..
Go to the top of the page
+Quote Post
hwao
post 17.08.2005, 08:21:43
Post #4


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Cytat(d3iv @ 2005-08-17 09:03:26)
ale mozna powiedziec ze var jest rownowazne z public.. w sumie to zadne uchybienie..

wylacz sobie kompatybilnosc z php4 to zobaczymy...
Go to the top of the page
+Quote Post
mike
post 17.08.2005, 08:25:10
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(d3iv @ 2005-08-17 08:03:26)
ale mozna powiedziec ze var jest rownowazne z public..

Nie. Modyfikatory dostępu nie mają związku ze słowem kluczowym var a już napewno nie są równoważne. No chyba tylko to że stoją w tym samym miejscu. Poczytaj szerzej o nich: Visibility.

Cytat(d3iv @ 2005-08-17 08:03:26)
w sumie to zadne uchybienie..

No faktycznie, to nie jest uchybienie. To jest brak wiedzy i pisanie w nowym środowisku starymi metodami, które żeby zadziałały wymagają kompatybilności wstecznej.
Jeżeli już ruszasz z php5 to przestań używać var.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 14:19