PHP ReflectionMethod::__construct 反射函数



  • 定义和用法

    ReflectionMethod::__construct - ReflectionMethod 的构造函数
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 支持 支持
  • 语法

    ReflectionMethod::__construct( mixed $class , string $name  )
    
    OR:
    ReflectionMethod::__construct ( string $class_method )
    
    ReflectionMethod::__construct() 构造一个新的 ReflectionMethod。
  • 参数

    参数 必需的 描述
    class 包含方法的类名称或者这个类的一个实例
    name 方法的名称
    class_method 类名称和方法名称,之间使用 :: 分隔
  • 返回值

    没有返回值。
    如果指定的方法不存在,那么抛出一个 ReflectionException 异常
  • 示例

    class 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 information
    printf(
        "===> 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()))
    );
    
    // 打印注释文档
    printf("---> Documentation:\n %s\n", var_export($method->getDocComment(), 1));
    
    // 打印存在的静态变量
    if ($statics= $method->getStaticVariables()) {
        printf("---> Static variables: %s\n", var_export($statics, 1));
    }
    
    // 执行方法
    printf("---> Invocation results in: ");
    var_dump($method->invoke(NULL));
    
    
    尝试一下
  • 相关页面

    ReflectionMethod::export() - 输出一个回调方法