Re: Object Overloading in PHP5

From: Date: Sat, 28 Aug 2004 15:48:53 +0000
Subject: Re: Object Overloading in PHP5
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-195006@lists.php.net to get a copy of this message
Stefan wrote:
It's a bug.
     * Siehe http://bugs.php.net/bug.php?id=28444 ... und ...
     *       http://news.php.net/php.bugs/63652
A workaround is possible using __call( $name, $args) { return( $this->__get( $name)); }. But it sucks, since constructs using array indices are impossible as $obj->not_existing_attr()[0] regards Daniel Schierbeck wrote:
Do you guys have any idea why this code:
    <?php
    class Foo
    {
        private $elem = array();
            public function __get ($prop)
        {
            if (isset($this->elem[$prop])) {
                return $this->elem[$prop];
            } else {
                trigger_error("Property '$prop' not defined", E_USER_ERROR);
            }
        }
            public function __set ($prop, $val)
        {
            $this->elem[$prop] = $val;
        }
    }
    $obj         = new Foo;
    $obj->a     = new Foo;
    $obj->a->b     = "Foobar";
    ?>
returns this:
    Fatal error: Cannot access undefined property for object with overloaded property access in ... on line 24
Where line 24 is:
    $obj->a->b     = "Foobar";
? &"%&&!#¤%¤%&(/)((%&"&¤%!#¤%&%#!%#!"&¤
-- Daniel Schierbeck

« previous php.general (#195006) next »