国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

PHP反射機制實現動態代理的代碼

瀏覽:3日期:2024-02-18 08:24:51

演示用代碼如下所示:

<?phpclass 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類來實現他的方法。同樣的,如下的代碼也是能夠運行的:

<?phpclass 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
主站蜘蛛池模板: 德钦县| 宜黄县| 洛南县| 阳原县| 新巴尔虎左旗| 淅川县| 聂拉木县| 新河县| 辽阳市| 全南县| 湖州市| 西华县| 南汇区| 洪洞县| 社会| 仁寿县| 贵阳市| 诏安县| 佛学| 伊宁县| 潜江市| 海晏县| 偃师市| 河西区| 呼图壁县| 始兴县| 萨迦县| 锦州市| 大庆市| 民权县| 岳西县| 通榆县| 新巴尔虎右旗| 海林市| 通江县| 长宁区| 峨山| 寿宁县| 南木林县| 额济纳旗| 内江市|