Keresés

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

  • Speeedfire

    félisten

    válasz Tele von Zsinór #6393 üzenetére

    Igen azt én is észrevettem, hogy developer verzió, csak a hivatalos oldalon egy szó sem esik erről. Ha valóban készül akkor lehet tudni, hogy mik lesznek az újítások?

    Most akkor lehet megint félreértettem valamit. Ha jól értettem akkor a függvény a __get() részben megnézni, hogy van-e az adott néven ilyen függvény, ha van akkor meghívja ha nincs akkor elkészíti ellekező esetben kivételt dob nekem.

    class TulajdonsagObjektum {

    private $_tulajdonsagok;

    public function __construct() {
    $this->_tulajdonsagok = array();
    $this->_tulajdonsagok['nev'] = null;
    $this->_tulajdonsagok['szuletesidatum'] = null;
    }

    function __get($tulajdonsagnev) {
    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];
    }
    }

    function __set($tulajdonsagnev, $ertek) {
    if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
    throw new Exception('Ervenytelen tulajdonsag-ertek');
    }
    if(method_exists($this, $tulajdonsagnev . 'Beallitas')) {
    return call_user_func(array($this, $tulajdonsagnev . 'Beallitas'), $ertek);
    }
    else {
    $this-> _tulajdonsagok[$tulajdonsagnev] = $ertek;
    }
    }

    function szuletesidatumBeallitas($szd) {
    if(strtotime($szd) == false) {
    throw new Exception('A szuletesi datumnak egy ervenyes naptari napnak kell lennie!');
    }
    else {
    $this->_tulajdonsagok['szuletesidatum'] = $szd;
    }
    }

    function koszontes() {
    echo 'Szia! '.$this->nev.' vagyok! '.$this->szuletesidatum.' -an/en szulettem!<br/>';
    }
    }

    try {

    $obj = new TulajdonsagObjektum();
    $obj->nev = "Szabi";
    $obj->szuletesidatum = '1985-08-27';
    $obj->koszontes();

    }

    catch (Exception $e) {
    echo 'Hiba: ', $e->getMessage(), "\n";
    }

    Ugye itt a __get() második if ágában van a vizsgálata ennek. Vagy te arra az egy db szuletesidatumBeallitasra gondoltál? Mert abban az esetben valóban van ilyen de a többi esetben nincs ilyen típusú függvény.
    Viszont most megint felmerült egy kérdés a fejemben? Nem lenne célszerűbb már a __get() résznél megvizsgálni a dolgokat? dátum, név stb? Mert így feleslegesen dolgozik utána még a __set() is. Akkor már a kivételkezelés az elején végbe menne.

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