Re: Closure and $this

From: Date: Thu, 13 Jan 2011 14:01:17 +0000
Subject: Re: Closure and $this
Groups: php.general 
Request: Send a blank email to php-general+get-310729@lists.php.net to get a copy of this message
Many thanks Larry. I like the Closure::bind() method proposal. Best regards __ Raymond Do more with less - http://raxanpdi.com --- On Thu, 1/13/11, Larry Garfield <larry@garfieldtech.com> wrote: From: Larry Garfield <larry@garfieldtech.com> Subject: Re: [PHP] Closure and $this To: php-general@lists.php.net Date: Thursday, January 13, 2011, 1:57 AM On Wednesday, January 12, 2011 11:37:19 pm Greg Bair wrote: > On Wed, 12 Jan 2011 20:02:11 -0800 (PST) > > Raymond Irving <xwisdom@yahoo.com> wrote: > > Hello, > > Does anyone know if closures will ever support the $this keyword? > > I think it would be very useful when working with objects. > > > > Best regards__RaymondDo more with less - > > http://raxanpdi.com > > Probably not, and my understanding of why comes from this line from the > docs (http://www.php.net/manual/en/functions.anonymous.php): > > "Anonymous functions are currently implemented using the Closure class." > > So, in other words, your closure does not belong to the class you > declare it in, but the Closure class. > >  Thus, if it supported the $this variable, it would refer not to the >  class you want, but instead to the Closure class. > > Just my understanding.  If it's not right, someone point it out. Actually at one point early on they did support a $this, but the way it was bound to an object was half-assed and incomplete so it was removed entirely from 5.3.  The intent was to then properly think through how that binding should happen and re-introduce it properly in 5.4.  I believe a consensus was reached on how that should happen but I'm not sure what its implementation status is at present. I believe this is the relevant RFC: http://wiki.php.net/rfc/closures/object-extension --Larry Garfield -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.general (#310729) next »