最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP反射機(jī)制用法實(shí)例

 更新時(shí)間:2014年08月28日 10:36:51   投稿:shichen2014  
這篇文章主要介紹了PHP反射機(jī)制用法,是PHP程序設(shè)計(jì)中比較重要的概念,需要的朋友可以參考下

本文實(shí)例講述了PHP反射機(jī)制的用法,分享給大家供大家參考之用。具體方法如下:

演示示例代碼如下所示:

<?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

可見(jiàn),通過(guò)代理類ClassOneDelegator來(lái)代替ClassOne類來(lái)實(shí)現(xiàn)他的方法。

同樣的,如下的代碼也是能夠運(yù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();
?>

希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

资源县| 神池县| 长沙县| 泰安市| 井陉县| 肥城市| 中江县| 乐亭县| 高雄县| 武冈市| 大埔区| 赤峰市| 石景山区| 南城县| 新郑市| 民和| 仙游县| 蒲城县| 富顺县| 凤冈县| 丰城市| 闻喜县| 化隆| 巩留县| 临安市| 汨罗市| 金坛市| 深州市| 永寿县| 鹤峰县| 永仁县| 上饶市| 环江| 元氏县| 郴州市| 望都县| 湄潭县| 明光市| 江孜县| 拜泉县| 嵩明县|