Hirdetés
- VR topik (Oculus Rift, stb.)
- Újra nekifeszül az asztali konzolok piacának a Valve
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Hisense LCD és LED TV-k
- Fejhallgató erősítő és DAC topik
- Projektor topic
- OLED TV topic
- Gaming notebook topik
- Soundbar, soundplate, hangprojektor
- Vezetékes FEJhallgatók
Ú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
- Külföldi rendelések: boltok, fizetés, postázás
- VR topik (Oculus Rift, stb.)
- Arc Raiders
- Interactive Brokers társalgó
- Beárazták a Nubia Z80 Ultra európai verzióját
- Kerékpárosok, bringások ide!
- OpenWRT topic
- Kuponkunyeráló
- Újra nekifeszül az asztali konzolok piacának a Valve
- Újratervezi az Apple az iPhone előlapját
- További aktív témák...
- BESZÁMÍTÁS! GB B450 AORUS Elite R5 5600X 32GB DDR4 1TB SSD NITRO+ RX 6700XT 12GB Rampage SHIVA 750W
- Apple iPhone 15 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- DeLonghi Magnifica Automata kávégép 6 hónap Garancia Beszámítás Házhozszállítás
- BESZÁMÍTÁS! ASUS H510M i7 10700 16GB DDR4 512GB SSD RTX 3060 12GB GDDR6 Zalman T4 Plus ADATA 600W
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő






