On Mon, Nov 4, 2024, at 13:06, Tim Düsterhus wrote:
> Hi
> 
> Am 2024-10-31 07:16, schrieb Larry Garfield:
> > Hm.  It would never occur to me to use a function for a non-class 
> > constant in the first place, so I don't know. :-)  Frankly I can't 
> > recall the last time I used a non-class constant period. :-)
> > 
> > That said, PHP consts are already a bit squishy, and auto-capture is 
> > always by value.  That wouldn't give us a loophole?
> 
> Here's another brainteaser:
> 
>      function foo(
>          string $bar,
>          Closure $baz = static fn () => $bar,
>      ) {
>          var_dump($baz());
>      }
> 
>      foo('captured');
> 
> What would you expect the semantics of that script to be?

Isn't this semantically equivalent to:

     function foo(
         string $bar,
         Closure $baz,
     ) {
         $baz = static fn () => $bar;
         var_dump($baz());
     }

     foo('captured');

— Rob

Reply via email to