PHP 高级编程(2)_PHP教程

WBOY
发布: 2016-07-13 10:28:14
原创
929 人浏览过

PHP 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。通过使用反射API可以分析其他的类、接口、方法、属性、函数和扩展。下面举例展示PHP自身类 Reflection 的定义:

Reflection::export(<span>new</span> ReflectionClass(<span>'</span><span>Reflection</span><span>'</span>));
登录后复制

打印结果如下:

Class [ <<span>internal</span>:Reflection> <span>class</span><span> Reflection ] {

  </span>- Constants [<span>0</span><span>] {
  }

  </span>- Static properties [<span>0</span><span>] {
  }

  </span>- Static methods [<span>2</span><span>] {
    Method [ </span><<span>internal</span>:Reflection> <span>static</span> <span>public</span><span> method getModifierNames ] {

      </span>- Parameters [<span>1</span><span>] {
        Parameter #</span><span>0</span> [ <required><span> $modifiers ]
      }
    }

    Method [ </span><<span>internal</span>:Reflection> <span>static</span> <span>public</span><span> method export ] {

      </span>- Parameters [<span>2</span><span>] {
        Parameter #</span><span>0</span> [ <required><span> Reflector $reflector ]
        Parameter #</span><span>1</span> [ <optional> $<span>return</span><span> ]
      }
    }
  }

  </span>- Properties [<span>0</span><span>] {
  }

  </span>- Methods [<span>0</span><span>] {
  }
}</span>
登录后复制

从打印结果可以看出 export 是 Reflection 类的一个public 的静态方法,提供两个参数,一个必须提供的 reflector类型 ,另一个是可选的,bool类型。不只是export,反射API还有很多,通过这些API我们还可以查询类的元数据,动态的调用类的静态方法,反射还能被用来创建自动稳定编写系统。反射API定义了大量is和has类型的函数,它们可以用来在代码中执行条件判断。比如通过isUserDefined()来判断已经加载的类中哪些是用户定义的。

(未完待续)

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/812981.htmlTechArticlePHP 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中...
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板