ReflectionMethod::__construct

(PHP 5, PHP 7)

ReflectionMethod::__constructConstruye un objeto ReflectionMethod

Descripción

public ReflectionMethod::__construct ( mixed $class , string $name )
public ReflectionMethod::__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;

    
/**
     * Incrementar contador
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    
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($statics1));
}

// 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:
 '/**
     * Incrementar contador
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */'
---> Resultado de la invocación: int(1)

Ver también