ďťż

[php 5] - class i function __set

       

Podstrony


telcocafe

hej, 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?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.