ugrás a tartalomhoz

OOP komplex kérdés halmaz

Numcsi · 2011. Ápr. 11. (H), 22.19
1) Mi a különbség a [$this] és a [$this->valtozo] között? Van a "method_exists(x,y)" függvény ahol x helyére natúr csak a $this kerül be. Mivel nincs neki megadva egyéb paraméter, akkor ilyenkor mit tartalmaz, amiből tudni fogja a php/fügvény hogy ezt kell csinálnia?


2) Az önmagukban szereplő $this-ek micsodák?
class ..{
function __set($tulajdonsagnev, $ertek){
if(method_exists($this, $tulajdonsagnev) {
return call_user_func(array($this, $tulajdonsagnem), $ertek)
}
}
}


3) A __get($valt) ez a metódus pontosan mit csinál? A változó helyére mi kerül be?
 
1

A $this az épp aktuális

bugadani · 2011. Ápr. 11. (H), 22.28
A $this az épp aktuális objektumpéldányra mutat. A $this->tag az objektumpéldány egy tagváltozója.
Ami miatt a $this önmagában értelmes: vannak helyzetek (mint a fent idézett), hogy meg kell mondani egy függvénynek, hogy melyik objektumon dolgozzon. Ilyen esetben, ha épp azon az objektumon belül vagy, amin valamit szeretnél csinálni, valamit át kell az ilyen függvényeknek adni. Ez lesz itt a $this. A method_exists pl ebben az esetben egy objektumpéldány egy tagfüggvényének létezését adja vissza, amihez tudnia kell, hogy melyik objektum melyik függvényét, metódusát keresse.

A __get($valt) egy olyan mágikus függvény, ami akkor hívódik meg, amikor egy olyan tagváltozót akar a program elérni, ami nem létezik. Ezesetben annak a változónak a neve kerül a $valt helyére.