Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:47357 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 11632 invoked from network); 17 Mar 2010 14:40:48 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 Mar 2010 14:40:48 -0000 Authentication-Results: pb1.pair.com header.from=mathieu.suen@easyflirt.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=mathieu.suen@easyflirt.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain easyflirt.com designates 91.199.255.56 as permitted sender) X-PHP-List-Original-Sender: mathieu.suen@easyflirt.com X-Host-Fingerprint: 91.199.255.56 python-06.easyrencontre.com Linux 2.6 Received: from [91.199.255.56] ([91.199.255.56:33497] helo=mail.easyflirt.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id D1/51-05162-FE9E0AB4 for ; Wed, 17 Mar 2010 09:40:48 -0500 Received: from [192.168.0.51] (office.easyrencontre.com [78.155.152.6]) by mail.easyflirt.com (Postfix) with ESMTPSA id 5E7E56374DB for ; Wed, 17 Mar 2010 15:40:44 +0100 (CET) Message-ID: <4BA0E9E8.8000404@easyflirt.com> Date: Wed, 17 Mar 2010 15:40:40 +0100 User-Agent: Thunderbird 2.0.0.23 (X11/20090817) MIME-Version: 1.0 To: internals@lists.php.net References: <4BA0DF61.1010907@easyflirt.com> <4BA0E39C.7020600@gmail.com> In-Reply-To: <4BA0E39C.7020600@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Assign array with __get From: mathieu.suen@easyflirt.com ("mathieu.suen") Ionut G. Stan wrote: > Hi, > > This is interesting and it appears the following change makes the > snippet work as expected: > > public function &__get($name); I think is that the $this->anArray['bar'] = 4; Generate the following bytcode: 0 FETCH_OBJ_W $0 'anArray' 1 ZEND_ASSIGN_DIM $0, 'bar' Will the folloing : echo $this->anArray; $this->anArray['bar']; 0 FETCH_OBJ_R $0 'anArray' 1 ECHO ... IMHO I think that the complexity of the VM is way to hight. That is something I am strongly agree with Gilad Bracha on adding new feature into a language: Look at the last paragraph: http://gbracha.blogspot.com/2009/09/systemic-overload.html > > > On 3/17/10 3:55 PM, mathieu.suen wrote: >> Hi, >> >> >> I came across a strange behavior when using the magic method __get and >> some instance variable that should be an array. >> Consider the following example: >> >> >> class A >> { >> >> public function __get($name) >> { >> $this->$name = array(); >> return $this->$name; >> } >> >> public function test() >> { >> $this->_zork['bar'] = 67; >> } >> } >> >> $a = new A; >> $a->test(); >> >> var_dump($a); >> >> >> So could someone explain me what is the semantic of the above >> statements? >> >> Thanks >> >> >> -- Mathieu Suen >> >> >> > --Mathieu Suen