比如一个PHP的扩展,你知道类名,但是不知道具体有哪些方法可以使用,可以使用反射试试。
示例:
$reflection = new ReflectionClass ($class_name);
$methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC + ReflectionMethod::IS_PROTECTED + ReflectionMethod::IS_PRIVATE);
//遍历所有的方法
echo "<pre>";
foreach ($methods as $method) {
//获取方法的参数
$params = $method->getParameters();
$position=0; //记录参数的次序
foreach ($params as $param){
$arguments[$param->getName()] = $position;
//参数是否设置了默认参数,如果设置了,则获取其默认值
$defaults[$position] = $param->isDefaultValueAvailable() ? $param->getDefaultValue() : NULL;
$position++;
}
$data = array(
'method_name'=>$method->getName(),
'arguments'=>$arguments,
'defaults'=>$defaults,
);
var_dump($data);
}