Hirdetés
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Real Racing 3 - Freemium csoda
- Lalikiraly: Kinek milyen setupja van?
- Gurulunk, WAZE?!
- Meggyi001: A kérdés...
- Luck Dragon: Asszociációs játék. :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- Lalikiraly: Astra kalandok @ Negyedik rész
- gerner1
Ú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
- HIBÁTLAN iPhone 16 Pro 128GB Desert -1 ÉV GARANCIA - Kártyafüggetlen, MS945, 92% Akkumulátor
- BESZÁMÍTÁS! ASUS Z97-K Z97 chipset alaplap garanciával hibátlan működéssel
- REFURBISHED - Lenovo ThinkPad 40A9 USB-C Dock (ELKELTEK) - CSAK RENDELÉSRE
- HP ZBook Studio x360 Gen5 Intel Xeon E-2176M
- HIBÁTLAN iPhone 13 Pro 128GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3667 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest





