使用Reflection获取参数类型

时间:2013-12-07 14:05:26

标签: php reflection

我使用以下代码从类中获取方法:

$reflector = new \ReflectionClass ( $className );
$methods = $reflector->getMethods(ReflectionMethod::IS_PUBLIC);
print_r ( $methods[0] );

然后我得到的就是财产的name。但我也对房产类型感兴趣。我怎样才能得到这些信息?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

$params = $methods[0]->getParameters();
$params[0]->getClass()->name;

如果该参数是强类型的,则只能使用getClass()->name

答案 1 :(得分:0)

// get the list of parameters
$params = $methods[0]->getParameters();

foreach($params as $param){

  if($param->isArray()){
    // array...

  }else{
    // something else...    

    try{
      $paramClass = $param->getClass();

      if($paramClass !== null){
        // it's a required class ($paramClass->name)
        // note that the class must be loaded at this point
      }

    }catch(\Exception $e){

    }

  }

}

这些是您可以通过反射检测到的唯一参数提示。