ReflectionMethod::__construct

(PHP 5, PHP 7, PHP 8)

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

Ver también

add a note add a note

User Contributed Notes 1 note

up
1
goujon at mail dot ru
7 years ago
Please note that in PHP >= 7.0 the second argument for both var_export() functions should be boolean and not integer. Otherwise, you'll get Uncaught Exception.
To Top