PHP反射与接口

反射

1、概念

反射指在PHP运行状态中,扩展分析PHP程序,导出或提取出相关类、方法、属性、参数等的详细信息,包括注释

2、使用

3、反射的作用

用于文档生成、动态代理(proxy.php)

target[] = new $tar();
    }
    function __call($name, $args) {
        foreach ($this->target as $obj) {
            $r = new ReflectionClass($obj);
            //echo $r->getMethod($name),"
"; if ($method = $r->getMethod($name)) { //echo $method->isPublic(),"
"; //var_dump ($method->isAbstract(),"
"); if ($method->isPublic() && !$method->isAbstract()) { echo "方法前拦截记录LOG","
"; $method->invoke($obj, $args); echo "方法后拦截","
"; } } } } } $obj = new sqlproxy('mysql'); $obj -> connect('member');

面向接口编程

1、 概念:

  • 狭义:interface
  • 广义:任何一个对外服务的接口

2、接口的作用

  • 对于实现接口的所有类,必须实现接口的全部方法
  • 接口为抽象而生
  • 接口===强制规范和契约
  • java中认为接口就是一种类型(type)

3、总结

  • 接口作为一种规范和契约存在。作为规范,接口应该保证可用性;作为契约,接口应该保证可控性
  • 接口只是一个声明,一旦使用interface关键字,就应该实现它。由程序员实现的接口叫外部接口,由系统实现的接口叫内部接口
  • PHP接口的两个不足:1、没有契约限制; 2、缺少足够多的内部接口

你可能感兴趣的:(PHP反射与接口)