ďťż
Podstrony
|
telcocafehej, mam takie pytanie : przyklad z ksiazki PHP i MySQL - z helionu.takie cos: class nazwaklasy ‹ var $atrybut; function __set($nazwa, $wartosc) ‹ if($nazwa='atrybut' && $wartosc >= 0 && $wartosc <= 11) this=>atrybut = $wartosc; › › i teraz jak wywolam: $a=new nazwaklasy(); $a->atrybut=55555; echo $a->atrybut; to nie powinno (z tego co czytam w tej ksiazce) przeciez wyswietlic tej liczby a wyswietla. help! na pewnio masz php5? Po za tym powinno byc public $atrybut i $this->atrybut var - pozostałość z php4 ($nazwa='atrybut' - jest = a powinno być == ok, sorry, przepisalem kod bardzo niestarannie, oto jak mam teraz (juz z waszymi poprawkami) i nadal nie dziala :( class nazwaklasy { public $atrybut; function __set($nazwa, $wartosc) ‹ if($nazwa=='atrybut' && $wartosc >= 0 && $wartosc <= 100) $this->atrybut = $wartosc; › } $a= new nazwaklasy(); $a->atrybut=999; echo $a->atrybut; i co powinno pokazac to echo? nic ? mi pokazuje 999. :( Użytkownik kull edytował ten post 07 grudzień 2006, 23:05 Nie wiem, czy to Ci coś pomoże, ale chyba napisałeś kod funkcji pomiędzy znakami porównań (<, >) zamiast między { a } :) Nie wiem, czy to Ci coś pomoże, ale chyba napisałeś kod funkcji pomiędzy znakami porównań (<, >) zamiast między { a } :) hehe, w kodzie mam poprawnie, cos z kodowaniem sie zrobilo przy kopiowaniu na forum :) hehe, w kodzie mam poprawnie, cos z kodowaniem sie zrobilo przy kopiowaniu na forum :) Nie przesądzam czemu to nie działa, ale przypuszczam, że jest to spowodowane tym, że zmienna jest zadeklarowana w klasie. Wydaje mi choć nie mam na to potwierdzenia, że __set uruchamiana jest w tym przypadku kiedy zmienna o danej nazwie nie jest zadeklarowana. ogolnie to tak przegladam przyklady z neta uzycia tego __set i dochodze do wniosku, ze chyba jednak nie rozumiem do konca jej dzialania i sensu jej uzywania. :/ musze wiecej cos o niej poczytac, a moze ktos potrafi to wytlumaczyc ta tym forum? |
|||
Sitedesign by AltusUmbrae. |