ReflectionMethod::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::__constructConstruye un objeto ReflectionMethod

Descripción

publicReflectionMethod::__construct(mixed$class, string$name)
publicReflectionMethod::__construct(string$class_method)

Construye un nuevo objeto de tipo ReflectionMethod.

Parámetros

class

Nombre de clase u objeto (instancia de la clase) a la que pertenece el método.

name

Nombre del método.

class_method

Nombre de la clase y nombre del método delimitados por ::.

Valores devueltos

No devuelve ningún valor.

Errores/Excepciones

Lnaza ReflectionException si no existiera el método.

Ejemplos

Ejemplo #1 Ejemplo de ReflectionMethod::__construct()

<?php
class Contador
{
private static
$c = 0;


final public static function incrementar()
{
return ++
self::$c;
}
}

// Crea una instancia de la clase ReflectionMethod
$metodo = new ReflectionMethod('Contador', 'incrementar');

// Muestra información básica
printf(
"===> El método %s%s%s%s%s%s%s '%s' (que es %s)\n" .
" declarado en %s\n" .
" líneas %d a %d\n" .
" con los modificadores %d[%s]\n",
$metodo->isInternal() ? 'interno' : 'definido por el usuario',
$metodo->isAbstract() ? ' abstract' : '',
$metodo->isFinal() ? ' final' : '',
$metodo->isPublic() ? ' public' : '',
$metodo->isPrivate() ? ' private' : '',
$metodo->isProtected() ? ' protected' : '',
$metodo->isStatic() ? ' static' : '',
$metodo->getName(),
$metodo->isConstructor() ? 'un constructor' : 'un método regular',
$metodo->getFileName(),
$metodo->getStartLine(),
$metodo->getEndline(),
$metodo->getModifiers(),
implode(' ', Reflection::getModifierNames($metodo->getModifiers()))
);

// Mostrar comentarios de documentación
printf("---> Documentación:\n %s\n", var_export($metodo->getDocComment(), 1));

// Si existieran, mostrar variables estáticas
if ($statics= $metodo->getStaticVariables()) {
printf("---> Variables estáticas: %s\n", var_export($statics, 1));
}

// Invocación del método
printf("---> Resultado de la invocación: ");
var_dump($metodo->invoke(NULL));
?>

El resultado del ejemplo sería algo similar a:

===> El método definido por el usuario final public static 'incrementar' (que es un método regular) declared in /Users/philip/cvs/phpdoc/test.php líneas 14 a 17 con los modificadores 261[final public static] ---> Documentación: '' ---> Resultado de la invocación: int(1)

Ver también

To Top