I guess this is associated with bug #36647 ( http://bugs.php.net/bug.php?id=36647 ) and I do not think that this makes a lot sense for the applications outside and will break them. For my company I decided that __get handlers really suck and I do not encourage our developers to use it anymore.
I strongly request that the whole part of __* handlers gets revisited, especially for memory allocation bugs (see my bugreport). I do not see any benefit of having those methods when the methods either refuse to do things which were possible before(BC!), nor when they do trash the application like now in current release. Leaving the methods untouched is a bad thing, since for security reasons the memleaks should be fixed asap. But "disabling" some of the functionality (return an internal array of the class for further handling) is not that nice at all, too. A smarter way has to be found, pls - if at all possible (derrick told me that this is "by php design" and probably is unfixable by nature). mike Richard Quadling wrote: > For PHP 5.2.0-dev (cli) (built: Jul 12 2006 12:20:25), I get ... > > Fatal error: Cannot use array returned from foo::__get('bar') in write > context in C:\- on line 16 > > But only once, not 1 per line. > > $f = new foo(); > $a = $f->bar; > foreach($a as $key => $value) > > fixes the code. > > > > On 19/07/06, Christian Stocker <[EMAIL PROTECTED]> wrote: >> Just updated to the latest PHP 5.2-dev from CVS and now I get an Fatal >> error with the following code >> *** >> <?php >> >> class foo { >> public function __get($member) { >> return array("foo"=>"bar","bar"=>"foo"); >> } >> } >> >> $f = new foo(); >> >> //error >> foreach($f->bar as $key => $value) { >> print "$key => $value"; >> } >> >> ?> >> *** >> >> It throws a >> >> "Fatal error: Cannot use array returned from foo::__get('bar') in write >> context" >> >> on the foreach line. Quite annoying :) >> >> >> That worked fine with 5.1 and also with 5.2-dev from a few days/weeks >> ago (don't know, when I cvs-uped last time, but can't be that long) >> >> Is that expected/wished behaviour? >> >> chregu >> >> >> >> >> -- >> christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich >> phone +41 44 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71 >> http://www.bitflux.ch | [EMAIL PROTECTED] | GPG 0x5CE1DECB >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> > > -- mike peter bretz metropolis ag / entwicklung email: [EMAIL PROTECTED] heinestraße 72 phone: +49-7121-348-120 d-72762 reutlingen fax: +49-7121-348-111 http://www.metropolis-ag.de/ metropolis ag. creating social internetworks.