首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP通过反射方法调用执行类中的私有方法

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

作者头像
魏杰
发布于 2022-12-23 19:16:01
发布于 2022-12-23 19:16:01
3.4K0
举报

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

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

代码语言:javascript
复制
<?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);
?>

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档