您的位置:首页 > 编程语言 > PHP开发

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);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: