PHP反射机制用法实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-04-10 13:32:55 浏览: 评论:0
这篇文章主要介绍了PHP反射机制用法,是PHP程序设计中比较重要的概念,需要的朋友可以参考下
本文实例讲述了PHP反射机制的用法,分享给大家供大家参考之用。具体方法如下:
演示示例代码如下所示:
- <?php
- class ClassOne {
- function callClassOne() {
- print "In Class One";
- }
- }
- class ClassOneDelegator {
- private $targets;
- function __construct() {
- $this->target[] = new ClassOne();
- }
- function __call($name, $args) {
- foreach ($this->target as $obj) {
- $r = new ReflectionClass($obj);
- if ($method = $r->getMethod($name)) {
- if ($method->isPublic() && !$method->isAbstract()) {
- return $method->invoke($obj, $args);
- }
- }
- }
- }
- }
- $obj = new ClassOneDelegator();
- $obj->callClassOne();
- ?>
输出结果:
In Class One
可见,通过代理类ClassOneDelegator来代替ClassOne类来实现他的方法。
同样的,如下的代码也是能够运行的:
- <?php
- class ClassOne {
- function callClassOne() {
- print "In Class One";
- }
- }
- class ClassOneDelegator {
- private $targets;
- function addObject($obj) {
- $this->target[] = $obj;
- }
- function __call($name, $args) {
- foreach ($this->target as $obj) {
- $r = new ReflectionClass($obj);
- if ($method = $r->getMethod($name)) {
- if ($method->isPublic() && !$method->isAbstract()) {
- return $method->invoke($obj, $args);
- } //www.phpfensi.com
- }
- }
- }
- }
- $obj = new ClassOneDelegator();
- $obj->addObject(new ClassOne());
- $obj->callClassOne();
- ?>
希望本文所述对大家的PHP程序设计有所帮助。
Tags: PHP反射机制
相关文章
- ·实例介绍PHP的Reflection反射机制(2021-03-28)
- ·PHP中的reflection反射机制测试例子(2021-03-29)
- ·PHP基于反射机制实现自动依赖注入的方法详解(2021-08-22)
- ·使用PHP反射机制来构造"CREATE TABLE"的sql语句(2021-11-13)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)