PHP ReflectionMethod::getClosure 反射函数

  • 定义和用法

    ReflectionMethod::getClosure - 返回一个动态建立的方法调用接口,可以使用这个返回值直接调用非公开方法。
  • 版本支持

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

    ReflectionMethod::getClosure( object $object )
    ReflectionMethod::getClosure() 返回一个动态建立的方法调用接口
  • 参数

    参数 必需的 描述
    object 不可以使用静态方法,需要其他类型的方法
  • 返回值

    返回 Closure 如果产生任何错误返回 NULL
  • 示例

    function call_private_method($object, $method, $args = array()) {
            $reflection = new ReflectionClass(get_class($object));
            $closure = $reflection->getMethod($method)->getClosure($object);
            return call_user_func_array($closure, $args);
    }
    
    class Example {
    
            private $x = 1, $y = 10;
    
            private function sum() {
                    print $this->x + $this->y;
            }
    
    }
    
    call_private_method(new Example(), 'sum');
    
    尝试一下
  • 相关页面

    ReflectionMethod::__construct() - ReflectionMethod 的构造函数