> On Oct 20, 2021, at 6:12 PM, Dylan K. Taylor <dkta...@pmmp.io> wrote: > > Hi all, > > Given the addition of Closure::fromCallable() and the upcoming first-class > callable syntax in 8.1, it seems slightly problematic that there's no simple > way to tell by reflection if a Closure refers to an anonymous function or > not. ReflectionFunctionAbstract::isClosure() (perhaps somewhat misleadingly) > returns whether the closure is literally a \Closure instance, so it's not > useful for this purpose. > > The only way to do this currently (that I know about) is to check if the name > of the function contains "{closure}", which is a bit unpleasant and depends > on undocumented behaviour. > > I'm proposing the addition of ReflectionFunctionAbstract::isAnonymous(), > which would fill this use case, and may be able to offer an implementation. > > Thanks, > Dylan Taylor. > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: https://www.php.net/unsub.php >
Hi Dylan, I recently wrote some code checking for “{closure}”: https://github.com/amphp/amp/blob/27219ddbc0bbc3fd0db4d7380eaed6489c7291ed/lib/functions.php#L135 <https://github.com/amphp/amp/blob/27219ddbc0bbc3fd0db4d7380eaed6489c7291ed/lib/functions.php#L135> I agree, it is a bit unpleasant and looks like a hack. I would welcome an isAnonymous() method. Cheers, Aaron Piotrowski