色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP 反射機制實現(xiàn)動態(tài)代理的代碼

演示用代碼如下所示: 
復(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
可見,通過代理類ClassOneDelegator來代替ClassOne類來實現(xià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();
?>

php技術(shù)PHP 反射機制實現(xiàn)動態(tài)代理的代碼,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 葵青区| 河曲县| 连州市| 阿坝| 宁陕县| 赞皇县| 贵阳市| 吉林省| 穆棱市| 剑川县| 南丹县| 庆云县| 曲松县| 清原| 偏关县| 鄂伦春自治旗| 霞浦县| 昌图县| 唐海县| 襄汾县| 岢岚县| 仙游县| 六枝特区| 五寨县| 凤山县| 沙湾县| 兴义市| 吉首市| 荆门市| 南召县| 贺兰县| 东海县| 广水市| 太仓市| 乌鲁木齐县| 汤原县| 永新县| 和顺县| 南川市| 漳平市| 绥滨县|