Hi

Am 2024-10-30 05:25, schrieb Larry Garfield:
This seems like a good idea to me. My only real question is why we need to forbid short-closures. I fully agree that capturing variables for such functions doesn't work. What I don't understand is why that precludes short-closures. Is it not possible to "just" say "there's nothing to even capture in this context, don't try"? (There may be technical reasons for that, but I do not know what they are and the RFC doesn't say.)

It would indeed require some special handling to disable the auto-capturing in the code. This would be solvable of course, but there's also semantic ambiguity, because users reasonably expect short closures to perform auto-capturing:

    <?php

    $foo = 'foo';

    const Closure = static fn (array $bar): array => [$foo, $bar];

    var_dump((Closure)('bar'));

If this would be legal syntax: What would you expect to be printed?

Best regards
Tim Düsterhus

Reply via email to