1.示例:Yii框架php反射类的使用

       //创建$class类的反射类实例对象

    $reflection = new ReflectionClass($class);

    //获取$class类的构造器对象

    $constructor = $reflection->getConstructor();

    if ($constructor !== null) {

       //获取构造方法参数列表$constructor->getParameters()

       foreach ($constructor->getParameters() as $param) {

       //构造参数是否有可利用默认值

          if ($param->isDefaultValueAvailable()) {

              $dependencies[] = $param->getDefaultValue();

          } else {

             //获取参数的类名称

              $c = $param->getClass();

              $dependencies[] = Instance::of($c === null ? null : $c->getName());

          }

       }

    }

         

    $reflection->isInstantiable();//对象是否可实例化

    $reflection->newInstanceArgs($dependencies);//实例化反射对象