最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP 反射機(jī)制實(shí)現(xiàn)動(dòng)態(tài)代理的代碼

 更新時(shí)間:2008年10月22日 21:53:57   作者:  
通過(guò)代理類(lèi)ClassOneDelegator來(lái)代替ClassOne類(lèi)來(lái)實(shí)現(xiàn)他的方法。
演示用代碼如下所示: 
復(fù)制代碼 代碼如下:

<?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();
?>

輸出結(jié)果:
In Class One
可見(jiàn),通過(guò)代理類(lèi)ClassOneDelegator來(lái)代替ClassOne類(lèi)來(lái)實(shí)現(xiàn)他的方法。
同樣的,如下的代碼也是能夠運(yùn)行的:
復(fù)制代碼 代碼如下:

<?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);
}
}
}
}
}
$obj = new ClassOneDelegator();
$obj->addObject(new ClassOne());
$obj->callClassOne();
?>

相關(guān)文章

最新評(píng)論

定结县| 南江县| 个旧市| 黔西| 类乌齐县| 张掖市| 西平县| 灵山县| 赤城县| 樟树市| 信宜市| 通城县| 邵阳县| 雷州市| 舞阳县| 石首市| 安丘市| 广水市| 龙岩市| 安远县| 江山市| 奉化市| 顺义区| 四川省| 姜堰市| 黄平县| 沾化县| 山西省| 开平市| 禄劝| 东莞市| 东台市| 河北区| 新野县| 靖州| 东平县| 黔西| 嘉善县| 吉安县| 康马县| 澄江县|