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

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

演示用代碼如下所示: 
復制代碼 代碼如下:
<?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)他的方法。
同樣的,如下的代碼也是能夠運行的:
復制代碼 代碼如下:
<?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)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 介休市| 常熟市| 黄石市| 彩票| 银川市| 汤原县| 安康市| 噶尔县| 宝丰县| 阿尔山市| 明溪县| 望城县| 米林县| 建德市| 临猗县| 桐城市| 青田县| 黄浦区| 灵石县| 治县。| 邳州市| 繁峙县| 乐昌市| 津市市| 太保市| 阿巴嘎旗| 天全县| 哈尔滨市| 尼木县| 富顺县| 澄江县| 海门市| 德州市| 长葛市| 会东县| 神农架林区| 得荣县| 义乌市| 工布江达县| 太保市| 容城县|