久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

瀏覽:9日期: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
主站蜘蛛池模板: 合水县| 邹城市| 杭锦旗| 玛纳斯县| 林甸县| 三门峡市| 新余市| 那坡县| 西畴县| 蓬莱市| 清流县| 陇西县| 扶余县| 阿瓦提县| 托克逊县| 峨边| 洛宁县| 忻城县| 六枝特区| 航空| 西和县| 秦皇岛市| 梁河县| 阜新| 惠来县| 武隆县| 布尔津县| 井研县| 文登市| 郎溪县| 沂南县| 策勒县| 裕民县| 苏尼特右旗| 英吉沙县| 屯门区| 越西县| 确山县| 凤山县| 克拉玛依市| 株洲市|