- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- weiss: Pant* rant
- Luck Dragon: Asszociációs játék. :)
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja a trendeket...
- sziku69: Szólánc.
- intecpc: Miért érdemes felújított laptopot vagy számítógépet választani?
- intecpc: Megbízhatóság, minőség, megtakarítás – Itt az akciós HP nyomtató!
Új hozzászólás Aktív témák
-
Speeedfire
félisten
válasz
Sk8erPeter #6395 üzenetére
Sk8erPeter & Tele von Zsinór: Köszönöm mindkettőtöknek, így utólag belegondolva pedig logikus és érthető is a dolog, nem értem miért nem értettem meg eddig.
Úgy néz ki nálam a hülyülés már korábban kezdődik mint kellene... -
Tele von Zsinór
őstag
válasz
Sk8erPeter #6395 üzenetére
Remek leírás, szép
@j0k3r!: a __call megkapja, milyen nevű függvényt akarsz meghívni és milyen paraméterekkel - aztán függvényen belül eldöntöd, mit akarsz ezekkel az adatokkal kezdeni. Valóban el lehet érni, hogy kívülről úgy nézzen ki, mintha túlterhelted volna, de ez nem változtat azon, hogy a php nem képes overloadingra. Default paraméterekkel lehet trükközni, de a gyenge típusosság miatt (egyelőre) nincs jobb.
@Speeedfire: akkor nézzük sorról sorra:
if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-érték!');
}
if(method_exists($this, $tulajdonsagnev. 'Lekerdezes')) {
return call_user_func(array($this, $tulajdonsagnev . 'Lekerdezes'));
}
else {
return $this->_tulajdonsagok[$tulajdonsagnev];
}Van olyan tulajdonság amit be akar állítani? Ha nincs, akkor bizony hiba, és kész vagyunk.
Van olyan függvény, hogy "tulajdonságnévLekerdezes"? Ha igen, meghívjuk, és visszaadjuk, amit visszaad. Ha pedig nincs, akkor a tömb megfelelő indexű elemét adjuk vissza.A beállítás ezzel analóg logikával működik, csak ott nem visszaad, hanem beállít, és így a call_user_func() függvénnyel paramétert is átad.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #6395 üzenetére
Korrigálnám magam annyiból, hogy tulajdonképpen valamilyen szinten mégiscsak "létrehoz" dinamikusan függvényeket a PHP, a lényeg:
http://php.net/manual/en/language.oop5.overloading.php
"Overloading in PHP provides means to dynamically "create" properties and methods. These dynamic entities are processed via magic methods one can establish in a class for various action types.The overloading methods are invoked when interacting with properties or methods that have not been declared or are not visible in the current scope. The rest of this section will use the terms "inaccessible properties" and "inaccessible methods" to refer to this combination of declaration and visibility.
All overloading methods must be defined as public."
Mellesleg most látom, hogy tulajdonképpen Tele von Zsinór már korábban leírta tömörebben a lényeget.
Na sebaj, elmondtam másféleképpen.---
(#6396) j0k3r!: pont a fentebb linkelt oldalon mutatják be a __call használatát!
-
j0k3r!
őstag
válasz
Sk8erPeter #6395 üzenetére
ha mar belementunk az oop php-be, akkor en is kerdeznek egyet. valahol azt hallottam (olvastam), hogy a magikus __call() al lehet fuggvenyt tulterhelni (amit egyebkent a php-ban azthiszem nem lehet).
a kerdesem az, hogy ezt szoktatok-e hasznalni? egyatalan lehet-e ilyet? (vagy csak en emlekszem rosszul)
Új hozzászólás Aktív témák
- Autós topik látogatók beszélgetős, offolós topikja
- gban: Ingyen kellene, de tegnapra
- Energiaital topic
- Fejhallgató erősítő és DAC topik
- Nintendo Switch 2
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen cserélhető objektíves gépet?
- Porszívók - akkus és klasszikus vezetékes
- Asztalos klub
- Fujifilm X
- További aktív témák...
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 Pro 24GB RAM 512GB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple Mac Studio M2 ULTRA 2023 64GB 1TB SSD számítógép garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple iPhone 13 mini 5G 128GB okostelefon garanciával hibátlan működéssel
- BESZÁMÍTÁS! Samsung Galaxy S24 Ultra 5G 256GB okostelefon garanciával hibátlan működéssel
- BESZÁMÍTÁS!Samsung Galaxy Tab S10 Ultra 256GB 5G tablet extra tokkal garanciával hibátlan működéssel
- iKing.Hu - Samsung Z Fold 6 - Navy - Használt, szép állapot
- SzoftverPremium.hu
- Bomba ár! Lenovo ThinkPad T580 - i5-8G I 16GB I 256SSD I 15,6" FHD I HDMI I W11 I Cam I Garancia!
- MacBook felváráslás!! MacBook, MacBook Air, MacBook Pro
- VÉGKIÁRUSÍTÁS - REFURBISHED - Lenovo ThinkPad 40A9 docking station (kb. 20 szett)
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest