PHP通过反射方法调用执行类中的私有方法
2016-12-11 13:32
651 查看
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
//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中通过调用call_user_func_array函数执行mysqli_stmt_bind_param方法时需要注意的问题
- 通过反射执行私有方法
- php通过反射执行某方法
- 通过JAVA的反射调用类中的公有私有方法
- java 反射机制调用私有构造方法并执行类内方法
- Java通过反射调用其他类的私有属性和私有方法
- 通过反射,如何操作私有成员变量(取/赋值),如何调用私有方法?
- PHP通过反射实现对象的成员方法调用
- 通过反射创建私有化类的对象,调用类的私有方法,改变私有属性
- php面向对象_get(),_set()的用法 (通过另外类 或者子类调用私有方法时)
- Silverlight加载xap后通过反射相互调用方法及元素
- Silverlight加载xap后通过反射相互调用方法及元素
- Mcad学习笔记之通过反射调用類的方法,屬性,字段,索引器(2種方法)
- 动态编译Java并通过反射执行方法
- C#反射调用另外一个类中的私有字段和方法
- 自定义服务器控件通过反射调用页面方法