On Sat, Jun 3, 2023, 21:11 Dan Ackroyd <dan...@basereality.com> wrote:
> Hi internals, > > I'm now opening the discussion for the Closure self-reference RFC: > https://wiki.php.net/rfc/closure_self_reference > > This was previously discussed as a draft here: > https://externals.io/message/112216#112216 > > Thank-you to KapitanOczywisty for the implementation. > > Hi Dan, How about a keyword/variable to the current executing closure that works also if you refactor it to a function or a method. Just like self for a class we can have a keyword like fnself or a variable like $fnself that is automatically available inside the body. For a closure it would be the closure itself while for a function / method it can be even just a little syntactic sugar to functionName(...) / self::methodName(...) (not using polymorphism intentionally). Maybe we decide not to implement this right now for functions/methods but we can at least choose a name that has a wider meaning. As we are talking references, I think there should be a mention in the RFC about how GC will (not?) be impacted? Is the closure reference count incremented just when the Closure execution starts, with no impact on GC? Regards, Alex