> On Oct 20, 2021, at 6:12 PM, Dylan K. Taylor <[email protected]> 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