Re: [RFC] Allow "use( $longname as $alias)" syntax for closures declaration

From: Date: Fri, 13 Apr 2012 09:21:14 +0000
Subject: Re: [RFC] Allow "use( $longname as $alias)" syntax for closures declaration
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-59864@lists.php.net to get a copy of this message
On Fri, Apr 13, 2012 at 4:19 PM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote: > Hi, > > 2012/4/13 Verbitsky Alexander <verbitsky_alexandr@mail.by>: >> On 04/12/2012 06:38 PM, Laruence wrote: >>> >>> Hi: >>>      I have made a RFC to allow user use T_AS in the closure declaration, >>> like: >>> >>>      function () use($long as $l,&$long as $r) { >>> >>>      } >>> >>>      here is the RFC: https://wiki.php.net/rfc/useas >>> >>>      any ideas?  thanks >>> >> Closure is a functional literal that can pull with itself all variables >> visible in current scope where it was created. For my opinion using keyword >> 'use' is not necessary and i would have removed it. If you need different >> name of variable maybe you need anonymous function. >> > > You might be used to other language's scoping, but > this is the way PHP works. closure was not the way PHP works. but now, it has be introduced in PHP > > Named function cannot do this, but anyway > function FUNC($a, $b, $c) uses ($d, $e, $f) {} > is like > function FUNC($a, $b, $c) { global $d, $e, $f; } they do are different, previous is a lexical variable. that means it equal to the value when the closure is created. the latter is the value when it was called. thanks > > I would rather have this. > function FUNC($a, $b, $c) uses ($d, $e, $f) {} > Then it would be consistent with anonymous function. > > There are methods, so we should be careful though. > > Regards, > > -- > Yasuo Ohgaki > yohgaki@ohgaki.net > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > -- Laruence  Xinchen Hui http://www.laruence.com/

« previous php.internals (#59864) next »