PHP通过反射方法调用执行类中的私有方法

Posted 疯狂奔跑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP通过反射方法调用执行类中的私有方法相关的知识,希望对你有一定的参考价值。

php 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。

下面我们演示一下如何通过反射,来调用执行一个类中的私有方法:

<?php
 
//MyClass这个类中包含了一个名为myFun的私有方法
class MyClass {
    
    private $tmp = ‘hello‘;
    
    private function myFun()
    {
        echo $this->tmp . ‘ ‘ . ‘world!‘;
    }
}
 
//通过类名MyClass进行反射
$ref_class = new ReflectionClass(‘MyClass‘);
 
//通过反射类进行实例化
$instance  = $ref_class->newInstance();
 
//通过方法名myFun获取指定方法
$method = $ref_class->getmethod(‘myFun‘);
 
//设置可访问性
$method->setAccessible(true);
 
//执行方法
$method->invoke($instance);
?>




























以上是关于PHP通过反射方法调用执行类中的私有方法的主要内容,如果未能解决你的问题,请参考以下文章

php反射类的使用及Laravel对反射的使用介绍

如何通过 反射 调用某个对象的私有方法?

反射获取类中的指定字段

C# 通过反射执行已存在于类中的方法 通过字符串执行方法

如何通过java 反射 调用一个 含有 可变参数的 方法呢 ??

Java_通过反射调用类中的方法