ReflectionFunctionAbstract::getClosureCalledClass
Возвращает класс, который соответствует разрешению static:: внутри замыкания
&reftitle.description;
public ReflectionClassnullReflectionFunctionAbstract::getClosureCalledClass
Метод возвращает объект рефлексии ReflectionClass для класса,
который соответствует статическому разрешению названия класса — static::
внутри объекта Closure.
&reftitle.parameters;
&no.function.parameters;
&reftitle.returnvalues;
Метод возвращает объект рефлексии класса — ReflectionClass,
который соответствует представлению static:: внутри объекта Closure.
Метод вернёт &null; вместо объекта рефлексии класса,
если функция не принадлежит типу замыкания или ограничивается глобальной областью видимости.
&reftitle.examples;
Пример разницы в значениях возврата методов
ReflectionFunctionAbstract::getClosureCalledClass,
ReflectionFunctionAbstract::getClosureScopeClass
и ReflectionFunctionAbstract::getClosureThis
при отражении замыкания, которому доступен контекст объекта
getClosure();
$r = new ReflectionFunction($c);
var_dump($r->getClosureThis()); // Выводит $this === $b, поскольку нестатическое замыкание захватывает контекст объекта
var_dump($r->getClosureScopeClass()); // Соответствует разрешению self::class внутри замыкания
var_dump($r->getClosureCalledClass()); // Соответствует разрешению static::class внутри замыкания
?>
]]>
&example.outputs;
string(1) "A"
}
object(ReflectionClass)#4 (1) {
["name"]=>
string(1) "B"
}
]]>
Пример разницы в значениях возврата методов
ReflectionFunctionAbstract::getClosureCalledClass,
ReflectionFunctionAbstract::getClosureScopeClass
и ReflectionFunctionAbstract::getClosureThis
при отражении статического замыкания без доступа к контексту объекта
getClosure();
$r = new ReflectionFunction($c);
var_dump($r->getClosureThis()); // Выводит NULL, поскольку псевдопеременная $this недоступна в статическом контексте
var_dump($r->getClosureScopeClass()); // Соответствует разрешению self::class внутри замыкания
var_dump($r->getClosureCalledClass()); // Соответствует разрешению static::class внутри замыкания
?>
]]>
&example.outputs;
string(1) "A"
}
object(ReflectionClass)#4 (1) {
["name"]=>
string(1) "B"
}
]]>
&reftitle.seealso;
ReflectionFunctionAbstract::getClosureScopeClass
ReflectionFunctionAbstract::getClosureThis