Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja dostepowa
Forum PHP.pl > Forum > PHP > Object-oriented programming
d3iv
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
M4chu
Tak na marginesie w PHP5 zamiast var uzywamy public/protected/private.
d3iv
ale mozna powiedziec ze var jest rownowazne z public.. w sumie to zadne uchybienie..
hwao
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...
mike
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.