闭包可以是匿名的,也可以不是匿名的。
这是一个匿名闭包
$c1 = function () {};
这是一个 *非* 匿名的闭包
$c2 = Closure::fromCallable(['Foo', 'bar']);
ReflectionFunction::isAnonymous() 对 $c1 返回 true,对 $c2 返回 false。
在 PHP 8.2 之前,需要进行以下检查来区分两者
$r = new \ReflectionFunction($c1);
$isAnonymous = false !== strpos($r->name, '{closure}');
ReflectionFunction::isAnonymous() 使检查变得更容易。