ReflectionParameter::getClass() will cause a fatal error (and trigger __autoload) if the class required by the parameter is not defined.
Sometimes it's useful to only know the class name without needing the class to be loaded.
Here's a simple function that will retrieve only the class name without requiring the class to exist:
<?php
function getClassName(ReflectionParameter $param) {
preg_match('/\[\s\<\w+?>\s([\w]+)/s', $param->__toString(), $matches);
return isset($matches[1]) ? $matches[1] : null;
}
?>
ReflectionParameter::getClass
(PHP 5)
ReflectionParameter::getClass — Obtener clase
Descripción
Obtener una clase.
Advertencia
Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.
Parámetros
Esta función no tiene parámetros.
Valores devueltos
Un objeto ReflectionClass.
tom at r dot je ¶
1 year ago
infernaz at gmail dot com ¶
2 years ago
The method returns ReflectionClass object of parameter type class or NULL if none.
<?php
class A {
function b(B $c, array $d, $e) {
}
}
class B {
}
$refl = new ReflectionClass('A');
$par = $refl->getMethod('b')->getParameters();
var_dump($par[0]->getClass()->getName()); // outputs B
var_dump($par[1]->getClass()); // note that array type outputs NULL
var_dump($par[2]->getClass()); // outputs NULL
?>
