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

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

//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.cnblogs.com/php-rearch/p/6159478.html

php 反射 调用私有方法,PHP通过反射方法调用执行类中的私有方法相关推荐

  1. python __repr__方法_第8.13节 Python类中内置方法__repr__详解

    当我们在交互环境下输入对象时会直接显示对象的信息,交互环境下输入print(对象)或代码中print(对象)也会输出对象的信息,这些输出信息与两个内置方法:__str__方法和__repr__方法有关 ...

  2. Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?

    文章目录 前言 一.私有方法在本类中直接调用 1.1.在本类中实例化,调用私有方法 1.2.尝试在其他类直接调用私有方法(错误示范) 二.使用反射实例化类强制调用私有方法 2.1.使用类加载器加载被调 ...

  3. 【EventBus】事件通信框架 ( 订阅方法注册 | 检查订阅方法缓存 | 反射获取订阅类中的订阅方法 )

    文章目录 一.检查订阅方法缓存 二.反射获取订阅类中的订阅方法 三.完整代码示例 一.检查订阅方法缓存 注册订阅者时 , 只传入一个订阅者类对象 , 其它信息都需要通过反射获取 ; 1. 获取订阅者类 ...

  4. Python类中的私有属性和私有方法

    Python类中的私有属性和私有方法 Python是面向对象的语言,在Python里一切皆对象,所以大部分情况下,我们都是通过类的方式来编程. 但是Python中的属性和方法在类的外部默认是可以访问的 ...

  5. Python(私有变量)类中的特殊方法

    2019独角兽企业重金招聘Python工程师标准>>> 类中的特殊方法 一般说来,特殊的方法都被用来模仿某个行为.例如,如果你想要为你的类使用x[key]这样的索引操作(就像列表和元 ...

  6. python定义私有变量的方法_Python类中的 私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  7. python定义私有变量的方法_Python怎么修改私有属性 如何访问python类中的私有方法...

    python 类为什么不能定义私有属性和方法 因为b.name[0] = 'zhang'修改的是类属性,类属性是全局的,所有的实例共享,如果想私有化,可以添加 def __init__( self ) ...

  8. 【Groovy】闭包 Closure ( 闭包调用 与 call 方法关联 | 接口中定义 call() 方法 | 类中定义 call() 方法 | 代码示例 )

    文章目录 总结 一.接口中定义 call() 方法 二.类中定义 call() 方法 三.完整代码示例 总结 在 实例对象后使用 " () " 括号符号 , 表示调用该实例对象的 ...

  9. Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法

    Spring 事务机制回顾 Spring事务一个被讹传很广说法是:一个事务方法不应该调用另一个事务方法,否则将产生两个事务.  结果造成开发人员在设计事务方法时束手束脚,生怕一不小心就踩到地雷.    ...

最新文章

  1. AI老大哥,正在看着你
  2. F5 BIG-IP 远程代码执行漏洞 CVE-2021-22986 虚拟机上复现
  3. libsvm使用方法总结
  4. 前端:CSS/15/全局CSS设置,常用的兼容性调试技巧,CSSHACK
  5. Linux中ftp密码输错无响应,psftp登陆输入正确用户名和密码后无响应解决办法
  6. 世界上最贵的车是直通车吗?
  7. 封装dialog弹窗
  8. 小学六年级计算机教案超链接,六年级信息技术《制作其他网页》优秀教案
  9. dig 域名信息查询
  10. 【GUI制作】tkinter-一款跨平台的简易GUI库
  11. Vss2005 的使用方法
  12. 常量的定义与使用与变量的定义与使用
  13. 怎么查看服务器的性能,查看服务器进程性能查看
  14. matlab 地形模拟程序,MATLAB模拟小球自由落体运动
  15. Java 贪心算法 活动安排问题
  16. 什么是指令周期?什么是机器周期?什么是时钟周期?三者之间的关系如何?
  17. 从头开始学习python+pytest接口自动化测试(一)pytest的运行方式3.pytest.ini配置文件运行
  18. Foundation——字符串
  19. 超详细的《防疫健康管理软件》开发报告奉上!【文末获取完整源码】
  20. 蓝牙耳机买什么品牌比较好?连接稳定的蓝牙耳机测评

热门文章

  1. CUDA全局变量(__device__)的初始化与使用:cudaMemoryToSymbol、cudaMemoryFromSymbol、cudaGetSymbolAddress
  2. java代码从服务器拉取到本地,集成到idea报错
  3. EasyUI的简单介绍
  4. 记忆与思考再到使用需要时间吗?
  5. windows下python环境搭建_Win7怎么搭建Python环境 win7系统搭建Python环境的方法
  6. SpringBoot重复配置数据库导致Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  7. Android10一直获取IP地址,Android 获取IP地址的实现方法
  8. 在C#中使用反射的简单例子
  9. SQL 使用总结六(改善数据库性能)
  10. odoo10参考系列--ORM API 二(新旧API兼容性、模型参考和方法修饰符)