[ sale83 @ 19.07.2006. 05:10 ] @
Pokusavam da shvatim overloading upotrebom __get __set sa ovoga linka: http://au.php.net/manual/en/language.oop5.overloading.php Prosto ne mogu da shvatim sta se tamo desva. iako volim __set i __get ( Navikao u .NET-u) Isto ova linija umesto da vrati true uvek mi vraca false ??? var_dump(isset($foo->a)); //true Dok overloading sa __call sam shvatio tj znam kako da iskoristim izvan classe Ali kako da preklopim metode unutar classe ??? Recimo : Code: <? // mozda sad ovo nije nesto a nije toliko bitno // bitno mi je kako da preklopim metode unutar classe class Osoba { private $_name; //Konstruktor public function Osoba($name) { $this->_name = $name; } // Ovaj sam nacin uvek koristio private function GetName() { return $this->_name; } //Ovde bi trebalo da ide nesto tipa SetName() ali nikad nisam koristio //private function SetName($name) //{ // samo onda bi se metoda GetName morala menjati // $this->_name = $name; //} public function Ime(){ echo "Vase ime je ".$this->GetName()."<br>"; } // kako ovde preklopiti sa ime($ime) // znaci da bude isto ime metode samo razliciti argumenti // da ne bude ovako ime2 nego ime... public function Ime2($ime){ $this->_name = $ime; echo "Vase novo ime je ".$this->GetName()."<br>"; } } $foo = new Osoba("Petar"); $foo->Ime(); $foo->Ime2("Jovan"); // rezultat je: //Vase ime je Petar //Vase novo ime je Jovan class OsobaVirtual { private $x = array(); function __call($m, $a) { print "Virtualna metoda $m je pozvana sa broje argumenata = ".count($a)."<br>"; $this->_x = $a; return $this->_x; } } $foo = new OsobaVirtual(); echo"<pre>"; $a = $foo->test("Petar"); print_r($a); $b = $foo->test("Petar","Petrovic"); print_r($b); /* Rezultat je: Virtualna metoda test je pozvana sa broje argumenata = 1 Array ( [0] => Petar ) Virtualna metoda test je pozvana sa broje argumenata = 2 Array ( [0] => Petar [1] => Petrovic ) */ ?> Da li je neko radio sa _set i _get i overload ?? http://au.php.net/manual/en/language.oop5.overloading.php I jel moze neko da proveri da li vama ova linja vraca false ili true ?? var_dump(isset($foo->a)); //true [Ovu poruku je menjao sale83 dana 19.07.2006. u 08:35 GMT+1] |