利用反射方法调用类中的私有方法

浏览:1612 发布日期:2018/10/01 分类:功能实现 关键字: 私有方法 函数
有时候我们需要调用私有方法,尤其是在用到框架内的私有方法,并且不想直接改写框架的情况下,我们可以重写一个方法,然后配合这个函数调用,实现覆盖改写框架方法之目的

交流QQ761765757
//利用反射方法调用类中的私有方法,参数个数可以自行添加
// 使用方法,把该功能方法放置到common函数方法库中,在需要的调用的地方直接get_private($class,$func,$args)即可
     function get_private($class,$func,$args1='',$args2='',$args3='',$args4='',$args5='',$args6='',$args7='',$args8='',$args9='' ,$args10='',$args11='' ,$args12='',$args13='' ,$args14='',$args15='' ){
        $ref_class = new \ReflectionClass($class); // get反射类名 
        $instance  = $ref_class->newInstance();    // get反射类中的私有变量 
        $method = $ref_class->getmethod($func);    // 获取反射类名中的方法 
        $method->setAccessible(true);              // 设置可访问性 
        $result = $method->invoke($instance,$args1,$args2,$args3,$args4,$args5,$args6,$args7,$args8,$args9,$args10,$args11,$args12,$args13,$args14,$args15);                  // 执行方法
        return $result;                            // 返回执行结果
    }
评论( 相关
后面还有条评论,点击查看>>