Re: [RFC] Allow "use( $longname as $alias)" syntax for closures declaration
| From: | Yasuo Ohgaki | Date: | Fri, 13 Apr 2012 08:19:27 +0000 |
| Subject: | Re: [RFC] Allow "use( $longname as $alias)" syntax for closures declaration | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-59860@lists.php.net to get a copy of this message | ||
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.
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; }
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