Hirdetés
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Speeedfire
#6394
üzenetére
"van-e az adott néven ilyen függvény, ha van akkor meghívja ha nincs akkor elkészíti"
Nem készít el semmilyen függvényt.
Függvényt legfeljebb meghív. [call_user_func()]"Nem lenne célszerűbb már a __get() résznél megvizsgálni a dolgokat? dátum, név stb? Mert így feleslegesen dolgozik utána még a __set() is."
Másra való a kettő! A getter függvényekkel lekérdezel bizonyos attribútumokat, változóértékeket, a setter függvényekkel pedig beállítod azok értékét.Ha be akarnám állítani vagy épp le akarnám kérdezni a "pityipalko" változó értékét, akkor arra nyilván kivételt dobna, mert nincs ilyen (ha beállítottad volna a konstruktorban, akkor lenne ilyen! példa:
$this->_tulajdonsagok['pityipalko'] = null;).
De a $_tulajdonsagok tömbben létezik 'nev' és 'szuletesidatum' index is, így azokhoz tartozik egy érték, azok beállíthatók, lekérdezhetők.Amikor ezt írod:
$obj->szuletesidatum = '1985-08-27';
Akkor tulajdonképpen a "mágikus" __set függvény hívódik meg, a __set $tulajdonsagnev paramétere megkapja a 'szuletesidatum' sztringet, az $ertek pedig az '1985-08-27' értéket.Ezután az array_key_exists() függvénnyel megvizsgáljuk, hogy a $_tulajdonsagok tömbben beállítottunk-e egyáltalán 'szuletesidatum' index-szel bármit (ami a konstruktorban egyébként null értéket kapott [lásd $this->_tulajdonsagok['szuletesidatum'] = null;], de ezzel már létrejött ezen az indexen egy érték), ha nem, kivétel, ha igen, megyünk tovább.
Ezután megvizsgálja, létezik-e az osztály adott példányában ($this) $tulajdonsagnev . 'Beallitas' nevű függvény - tehát esetünkben szuletesidatumBeallitas nevű függvény (mivel konkatenálja a $tulajdonsagnev változó értékét a 'Beallitas' sztringgel, majd megvizsgálja, van-e ilyen metódus ( method_exists() függvény).
Ha létezik ilyen metódus, akkor meghívja azt, különben pedig csak simán beállítja a $tulajdonsagnev nevű indexen található értéket a $_tulajdonsagok tömbből.Remélem valamennyire érthetően mondtam el.

Új hozzászólás Aktív témák
- Milyen TV-t vegyek?
- AMD GPU-k jövője - amit tudni vélünk
- LG LCD és LED TV-k
- Xiaomi 15T Pro - a téma nincs lezárva
- Xbox tulajok OFF topicja
- AMD Navi Radeon™ RX 9xxx sorozat
- Azonnali informatikai kérdések órája
- Budapest és környéke adok-veszek-beszélgetek
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Mini-ITX
- További aktív témák...
- Szép DELL latitude 5420 Tartós Üzleti Laptop 14" -70% i5-1145G7 4Mag 16Gb 256GB SSD FHD IPS
- Bomba ár! Asus ROG G751JY - i7-4750HQ I 16GB I 256SSD I GTX980M 4G I 17,3" FHD I Cam I Garancia!
- Bomba ár! Dell Latitude 3340 - i3-4GEN I 4GB I 500GB I 13,3" HD I HDMI I Cam I W10 I Garancia!
- Bomba ár! Lenovo IdeaPad V130-14IGM - N4000 I 4GB I 128SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! Lenovo ThinkPad T14 G1 - i5-10GEN I 16GB I 256SSD I 14" FHD I Cam I W11 I Garancia!
- HIBÁTLAN iPhone 15 Pro Max 256GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3495, 100% Akkumulátor
- Apple iPhone 13 / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku:100%
- Keresek Xbox Series S / Series X / Playstation 5 konzolokat
- Honor X6a 128GB, Kártyafüggetlen, 1 Év Garanciával
- HP ZBook Power 15 G8 Mobile Workstation i7-11850H 32GB 512GB Nvidia RTX A2000
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő




