Re: Object Overloading in PHP5
| From: | Daniel Schierbeck | 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.-- Daniel Schierbeck* Siehe http://bugs.php.net/bug.php?id=28444 ... und ... * http://news.php.net/php.bugs/63652A 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:<?phpclass 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 24Where line 24 is:$obj->a->b = "Foobar";? &"%&&!#¤%¤%&(/)((%&"&¤%!#¤%&%#!%#!"&¤