Re: PHP 5.2-dev "Cannot use array returned from foo::__get('bar') in write context"

From: Date: Wed, 19 Jul 2006 19:35:17 +0000
Subject: Re: PHP 5.2-dev "Cannot use array returned from foo::__get('bar') in write context"
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-24718@lists.php.net to get a copy of this message
Hello Andrei, the problem is not the 'as' part, the problem is accessing the array and that currently must be a write context. Maybe we can work around tha at some point i dunno. best regards marcus Wednesday, July 19, 2006, 6:24:02 PM, you wrote: > But how is foreach() a write context? Unless you mean that someone uses > foreach($f->bar as &$val) { .. }. Can we detect that though? > -Andrei > On Jul 19, 2006, at 8:22 AM, Dmitry Stogov wrote: >> __get() never worked in write context proper. >> It just CAN NOT work proper, because __get() returns by value (zval*), >> but >> modification requires address (zval**). >> We have a lot of __get() related bugs because of this situation in >> bugs.php.net. >> >> Month ago Marcus disabled usage of __get() in write context and I am >> completely agree with him >> We cannot use E_STRICT for this error and then SIGSEGV. >> >> Thanks. Dmitry. >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php Best regards, Marcus

« previous php.internals (#24718) next »