Hello,

mostly, your argument in your rfc, is all about not finding a good syntax;
hence your have a terrible coding style
and you want to change the language for that.

```
$fn = function (
 T1 $arg1_
, T1 $arg2_
, T1 $arg3_
, T1 $arg4_
, T1 $arg5_
, T1 $arg6_
) use ($var1, &$var2, &$var3, &$var4): T2
{
//  If you want to import more scope vars your code is
//  smelly, should think about writing something else.
return new T2;
};
```


On Sat, Jun 15, 2019 at 3:52 PM Kalle Sommer Nielsen <ka...@php.net> wrote:

> Hi
>
> Den søn. 16. jun. 2019 kl. 01.37 skrev Wes <netmo....@gmail.com>:
> >
> > Hi Kalle, I realize it's going to be a bit odd when binding by value. But
> > it's not that hard to grasp.
> >
> > ```
> > $a = 123;
> > $closure = function(){
> >     use $a;
> >     echo $a; // 123
> > };
> > $a = 345;
> > ```
>
> Take this example:
>
> function get_closure() {
>   $a = 123;
>
>   return function() {
>     use $a;
>     echo $a;
>   };
> }
>
> get_closure()();
>
> $a is not available at this time because the scope of which $a exists
> in is destroyed at this point, which is why it exists as apart of the
> prototype like I mentioned and therefore it can be captured.
>
> Your idea means we need to scan the body of the declared closure for
> use statements to perform the binding at this stage, adding extra
> specialized steps in the executor for only makes me question the
> motive for this again, and if the motive is that "I'm passing an
> excessive amount of values to a closure", then I think you are forcing
> a technique that isn't mean for this to do it anyway. Another thing to
> take into consideration here is the performance impact that it can
> potentially have.
>
> Whether or not its at the top of the body or separated in multiple
> statements or all over the body still means we need to check if the
> body contains such a statement and do the right computations for it, I
> still don't think the argument presented in the RFC justifies this
> potential cost, and would like to see a demo implementation and impact
> it would have first.
>
>
> --
> regards,
>
> Kalle Sommer Nielsen
> ka...@php.net
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to