石家庄seo培训:PHP 反射机制实现动态代理的代码

时间:2009-07-04 10:54来源:网络营销管理学院 作者:网络营销专家 点击:次 [收藏到本地收藏夹]
以下为引用的内容: class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function __call($name, $args) { forea

以下为引用的内容:

class ClassOne {

function callClassOne() { dedecms.com

print "In Class One"; 织梦内容管理系统

}

copyright dedecms

} 本文来自织梦

class ClassOneDelegator {

内容来自dedecms

private $targets;

织梦内容管理系统

function __construct() {

内容来自dedecms

$this->target[] = new ClassOne();

本文来自织梦

} dedecms.com

function __call($name, $args) {

织梦好,好织梦

foreach ($this->target as $obj) {

本文来自织梦

$r = new ReflectionClass($obj); 内容来自dedecms

if ($method = $r->getMethod($name)) { 内容来自dedecms

if ($method->isPublic() && !$method->isAbstract()) { dedecms.com

return $method->invoke($obj, $args); copyright dedecms

}

织梦好,好织梦

} dedecms.com

}

织梦好,好织梦

} 本文来自织梦

} 内容来自dedecms

$obj = new ClassOneDelegator();

织梦内容管理系统

$obj->callClassOne(); 织梦内容管理系统

?> 本文来自织梦

输出结果:

dedecms.com

In Class One 织梦内容管理系统

可见,通过代理类ClassOneDelegator来代替ClassOne类来实现他的方法。

本文来自织梦

同样的,如下的代码也是能够运行的: 织梦好,好织梦

class ClassOne {

内容来自dedecms

function callClassOne() {

dedecms.com

print "In Class One"; copyright dedecms

} 织梦内容管理系统

} 织梦内容管理系统

class ClassOneDelegator {

织梦内容管理系统

private $targets;

内容来自dedecms

function addObject($obj) {

dedecms.com

$this->target[] = $obj; 织梦好,好织梦

} 本文来自织梦

function __call($name, $args) {

dedecms.com

foreach ($this->target as $obj) {

copyright dedecms

$r = new ReflectionClass($obj);

织梦好,好织梦

if ($method = $r->getMethod($name)) {

dedecms.com

if ($method->isPublic() && !$method->isAbstract()) {

内容来自dedecms

return $method->invoke($obj, $args); 本文来自织梦

} dedecms.com

}

dedecms.com

} 织梦内容管理系统

}

织梦好,好织梦

}

内容来自dedecms

$obj = new ClassOneDelegator();

dedecms.com

$obj->addObject(new ClassOne());

本文来自织梦

$obj->callClassOne();

织梦好,好织梦

?> 本文来自织梦

 

本文来自织梦

  内容来自dedecms

  内容来自dedecms

     更多精彩:http://www.cnseoo.net                  www.hbmobiles.cn 内容来自dedecms

顶一下
(0)
0%
踩一下
(0)
0%
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
营销百科 娱乐资讯