您的位置:首页 > 编程语言 > PHP开发

php 使用映射执行授权模式的例子

2015-01-09 11:44 232 查看
映射类ReflectionClass可以在运行中查询类名,函数名,变量等等很多信息,给编程带来很大灵活性,详细信息可以查看php帮助文档,

以下是使用映射执行授权模式的简单例子例子(程序已经过调试OK)。

<?php

class ClassOne {

function callClassOne() {

echo "In Class One\n";

}

}

class ClassTwo {

function callClassTwo() {

echo "In Class Two\n";

}

}

class ClassOneDelegator {

public $targets;

function __construct() {

$this->targets[] = new ClassOne();

}

function addObject($obj) {

$this->targets[] = $obj;

}

function __call($name, $args) {

foreach ($this->targets as $obj) {

$r = new ReflectionClass($obj);

if(!$r->hasMethod($name))continue;

if ($method = $r->getMethod($name)) {

if ($method->isPublic() && !$method->isAbstract()) {

return $method->invoke($obj, $args);

}

}

echo $obj . "\n";

}

}

}

$obj = new ClassOneDelegator();

$obj->addObject(new ClassTwo());

$obj->callClassOne();

$obj->callClassTwo();

?>

输出:

教材中的例子。但是经过我的修正(红色字体)后才能正常运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐