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

  • Speeedfire

    félisten

    Ismét egy kis oop kérdés lenne. A könyvben adott egy kódrész:

    class TulajdonsagObjektum {

    private $_tulajdonsagok = array (
    'nev' => null,
    '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($tulajdonosnev, $ertek) {
    if(!array_key_exists($tulajdonosnev, $this->_tulajdonsagok)) {
    throw new Exception('Ervenytelen tulajdonsag-ertek');
    }
    if(method_exists($this, $tulajdonosnev . 'Beallitas')) {
    return call_user_func(array($this, $tulajdonosnev . 'Beallitas'), $ertek);
    }
    else {
    $this-> _tulajdonsagok[$tulajdonosnev] = $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';
    }
    }

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

    $obj->szuletesidatum = 'piros';

    A könyv szerint ki kellene írni a Szabit és a születési dátumot és utána egy hibaüzenetet, hogy a piros nem megfelelő dátum.
    Ehelyett az egészet egy errorba rakja nekem.

    Fatal error: Uncaught exception 'Exception' with message 'A szuletesi datumnak egy ervenyes naptari napnak kell lennie!' in D:\munka\web\!!!oop\index.php:80 Stack trace: #0 [internal function]: TulajdonsagObjektum->szuletesidatumBeallitas('1985. 08. 27.') #1 D:\munka\web\!!!oop\index.php(71): call_user_func(Array, '1985. 08. 27.') #2 D:\munka\web\!!!oop\index.php(94): TulajdonsagObjektum->__set('szuletesidatum', '1985. 08. 27.') #3 {main} thrown in D:\munka\web\!!!oop\index.php on line 80

    php 5.3.0 van fent.

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