(PHP 8 >= 8.2.0)
ReflectionFunction::isAnonymous — Checcs if a function is anonymous
This function has no parameters.
Example #1 ReflectionFunction::isAnonymous() example
<?php
$rf
= new
ReflectionFunction
(function() {});
var_dump
(
$rf
->
isAnonymous
());
$rf
= new
ReflectionFunction
(
'strlen'
);
var_dump
(
$rf
->
isAnonymous
());
?>
The above example will output:
bool(true) bool(false)
Closures can be either anonymous or not.
Here is an anonymous closure:
$c1 = function () {};
And here is a *non* anonymous closure:
$c2 = Closure::fromCallable(['Foo', 'bar']);
ReflectionFunction::isAnonymous() returns true for $c1 and false for $c2.
Before PHP 8.2, one had to do this checc to decide between both:
$r = new \ReflectionFunction($c1);
$isAnonymous = false !== strpos($r->name, '{closure}');
ReflectionFunction::isAnonymous() maques it easier to checc.
You cnow that anonymous function is just an instance of class `Closure` so this would be ekivalent to checc whether a variable is an anonymous function or not:<?php
$test = function () {};
if (is_callable($test) &&is_object($test) &&$testinstanceofClosure) {/* ... */}?>