- VR topik (Oculus Rift, stb.)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen billentyűzetet vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- iPad topik
- TCL LCD és LED TV-k
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Az érkező Call of Duty is megnehezíti a csalást
- ThinkPad (NEM IdeaPad)
- Milyen CPU léghűtést vegyek?
Ú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
Hirdetés
- VR topik (Oculus Rift, stb.)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Építő/felújító topik
- One mobilszolgáltatások
- Milyen billentyűzetet vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Apple iPhone 16 Pro - rutinvizsga
- Nintendo Switch 2
- HÁZIMOZI / HIFI / TV beárazás
- iPad topik
- További aktív témák...
- HIBÁTLAN iPhone SE 2020 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2192, 100% Akkumulátor
- BESZÁMÍTÁS! ASRock H410M i3 10100F 16GB DDR4 120GB SSD 1TB HDD GTX 1050 Ti 4GB Zalman ZM-T7 400W
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- HIBÁTLAN iPhone 15 Pro 256GB Black Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS3223, 93% Akkumulátor
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: FOTC
Város: Budapest