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 — Get class
Descrição
Gets a class.
Aviso
Esta função não está documentada; somente a lista de argumentos está disponível.
Parâmetros
Esta função não contém parâmetros.
Valor Retornado
A ReflectionClass object.
tom at r dot je
11-May-2012 09:15
infernaz at gmail dot com
31-Jan-2011 12:09
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
?>
