Hirdetés

Új hozzászólás Aktív témák

  • 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.

Új hozzászólás Aktív témák