Constructs a ReflectionMethod

- « ReflectionMethod

- ReflectionMethod::createFromMethodName »

- PHP Manual
- ReflectionMethod
- Constructs a ReflectionMethod

# ReflectionMethod::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::__construct — Constructs a ReflectionMethod

### Description

public ReflectionMethod::__construct(object|string `$objectOrMethod`, string `$method`)

Alternative signature (not supported with named arguments):

public ReflectionMethod::__construct(string `$classMethod`)

Constructs a new ReflectionMethod.

### Parameters

`objectOrMethod`

  Classname or object (instance of the class) that contains the method.

`method`

  Name of the method.

`classMethod`

  Class name and method name delimited by `::`.

### Errors/Exceptions

A ReflectionException is thrown if the given method does not exist.

### Examples

Example #1 ReflectionMethod::__construct() example

    <?phpclass Counter{    private static $c = 0;    /**     * Increment counter     *     * @final     * @static     * @access  public     * @return  int     */    final public static function increment()    {        return ++self::$c;    }}// Create an instance of the ReflectionMethod class$method = new ReflectionMethod('Counter', 'increment');// Print out basic informationprintf(    "===> The %s%s%s%s%s%s%s method '%s' (which is %s)\n" .    "     declared in %s\n" .    "     lines %d to %d\n" .    "     having the modifiers %d[%s]\n",        $method->isInternal() ? 'internal' : 'user-defined',        $method->isAbstract() ? ' abstract' : '',        $method->isFinal() ? ' final' : '',        $method->isPublic() ? ' public' : '',        $method->isPrivate() ? ' private' : '',        $method->isProtected() ? ' protected' : '',        $method->isStatic() ? ' static' : '',        $method->getName(),        $method->isConstructor() ? 'the constructor' : 'a regular method',        $method->getFileName(),        $method->getStartLine(),        $method->getEndline(),        $method->getModifiers(),        implode(' ', Reflection::getModifierNames($method->getModifiers())));// Print documentation commentprintf("---> Documentation:\n %s\n", var_export($method->getDocComment(), true));// Print static variables if existantif ($statics= $method->getStaticVariables()) {    printf("---> Static variables: %s\n", var_export($statics, true));}// Invoke the methodprintf("---> Invocation results in: ");var_dump($method->invoke(NULL));?>

The above example will output something similar to:

    ===> The user-defined final public static method 'increment' (which is a regular method)
         declared in /Users/philip/cvs/phpdoc/test.php
         lines 14 to 17
         having the modifiers 261[final public static]
    ---> Documentation:
     '/**
         * Increment counter
         *
         * @final
         * @static
         * @access  public
         * @return  int
         */'
    ---> Invocation results in: int(1)

### See Also

- ReflectionMethod::export() - Export a reflection method
- Constructors