文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用reflection执行授权模式

使用reflection执行授权模式

时间:2010-07-17  来源:qgymje

print_r(ReflectionClass::export('ClassOne'));

Class [ <user> class ClassOne ] {
  @@ E:\xampp\htdocs\test\reflection.php 2-8

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [1] {
    Method [ <user> public method callClassOne ] {
      @@ E:\xampp\htdocs\test\reflection.php 4 - 7
    }
  }
}


class ClassOne
{
        function callClassOne()
        {
                print "In ClassOne\n";
        }
}
class ClassTwo
{
        function callClassTwo()
        {
                print "In ClassTwo\n";
        }
}

class ClassOneDelegator
{
        private $target;
        
        function __construct()
        {
                $this->target[] = new ClassOne();
        }
        
        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 ClassTwo());
$obj->callClassOne();
$obj->callClassTwo();

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载