(PHP 8 >= 8.0.23, PHP 8 >= 8.1.11)
ReflectionFunctionAbstract::getClosureCalledClass — Возвращает класс, который соответствует разрешению static:: внутри замыкания
   Метод возвращает объект рефлексии ReflectionClass для класса,
   который соответствует статическому разрешению названия класса — static::
   внутри объекта Closure.
  
Сигнатура функции не содержит параметров.
   Метод возвращает объект рефлексии класса — ReflectionClass,
   который соответствует представлению static:: внутри объекта Closure.
   Метод вернёт null вместо объекта рефлексии класса,
   если функция не принадлежит типу замыкания или ограничивается глобальной областью видимости.
  
Пример #1 Пример разницы в значениях возврата методов ReflectionFunctionAbstract::getClosureCalledClass(), ReflectionFunctionAbstract::getClosureScopeClass() и ReflectionFunctionAbstract::getClosureThis() при отражении замыкания, которому доступен контекст объекта
<?php
class A
{
    public function getClosure()
    {
        var_dump(self::class, static::class);
        return function() {};
    }
}
class B extends A {}
$b = new B();
$c = $b->getClosure();
$r = new ReflectionFunction($c);
var_dump($r->getClosureThis()); // Выводит $this === $b, поскольку нестатическое замыкание захватывает контекст объекта
var_dump($r->getClosureScopeClass()); // Соответствует разрешению self::class внутри замыкания
var_dump($r->getClosureCalledClass()); // Соответствует разрешению static::class внутри замыкания
?>Результат выполнения приведённого примера:
string(1) "A"
string(1) "B"
object(B)#1 (0) {
}
object(ReflectionClass)#4 (1) {
  ["name"]=>
  string(1) "A"
}
object(ReflectionClass)#4 (1) {
  ["name"]=>
  string(1) "B"
}
Пример #2 Пример разницы в значениях возврата методов ReflectionFunctionAbstract::getClosureCalledClass(), ReflectionFunctionAbstract::getClosureScopeClass() и ReflectionFunctionAbstract::getClosureThis() при отражении статического замыкания без доступа к контексту объекта
<?php
class A
{
    public function getClosure()
    {
        var_dump(self::class, static::class);
        return static function() {};
    }
}
class B extends A {}
$b = new B();
$c = $b->getClosure();
$r = new ReflectionFunction($c);
var_dump($r->getClosureThis()); // Выводит NULL, поскольку псевдопеременная $this недоступна в статическом контексте
var_dump($r->getClosureScopeClass()); // Соответствует разрешению self::class внутри замыкания
var_dump($r->getClosureCalledClass()); // Соответствует разрешению static::class внутри замыкания
?>Результат выполнения приведённого примера:
string(1) "A"
string(1) "B"
NULL
object(ReflectionClass)#4 (1) {
  ["name"]=>
  string(1) "A"
}
object(ReflectionClass)#4 (1) {
  ["name"]=>
  string(1) "B"
}
