0
在线手册:中文 英文
<?php 
function cls_info($clsname$methods=null){
    
$reflection = new ReflectionClass($clsname); 
    
$aMethods $reflection->getMethods();
    foreach(
$aMethods AS $param){
        
$name $param->name;
        
$args = array();
        if(
$methods){
            if(
strtolower($name) !== strtolower($methods))
                continue;
        }
        foreach (
$param->getParameters() as $param) {
            
$tmparg '';
            if (
$param->isPassedByReference()) $tmparg '&';
             
            if (
$param->isOptional()) {
                try {
                    
$DefaultValue $param->getDefaultValue();
                    if(
is_null($DefaultValue))
                        
$DefaultValue 'null';
                         
                    
$tmparg '[' $tmparg '$' $param->getName() . ' = ' $DefaultValue ']';
                } catch( 
Exception $e ) {
                    
$tmparg '['.$tmparg '$' $param->getName().']';
                }
            } else {
                
$tmparg .= '$'.$param->getName();
            }
            
$args[] = $tmparg;
            unset (
$tmparg);
        }
        
$functions_list[$name] = 'function ' $name'(' strtr(implode(', '$args),array('], ['=>', ')) . ')' PHP_EOL;
    }
    return 
$functions_list;
}
 
function 
fun_info($funName=null){
    static 
$func = array();
    !
$func && $func get_defined_functions();
    if(!
$funName){
       
$flist = array();
       
$flist['internal'] = fun_info('internal');
       
$flist['user'] = fun_info('user');
       return 
$flist;
    }else{
        if(
$func[$funName]){
            
$funcs $func[$funName];
        }else{
            
$funName strtolower($funName);
            
$funcs = array($funName); // 换算成数组.
        
}
    }
    foreach (
$funcs as $func_val){
        
$f = new ReflectionFunction($func_val);
        
$args = array();
        
// $f->isUserDefined(); // 检测是否为用户自定义函数.
        // $f->export('error_reporting'); // 导出函数详情.
        
foreach ($f->getParameters() as $param) {
                
$tmparg '';
                if (
$param->isPassedByReference()) $tmparg '&';
                if (
$param->isOptional()) {
                    try {
                        
$DefaultValue $param->getDefaultValue();
                        if(
is_null($DefaultValue))
                            
$DefaultValue 'null';
                        
$tmparg '[' $tmparg '$' $param->getName() . ' = ' $DefaultValue ']';
                    } catch( 
Exception $e ) {
                        
$tmparg '['.$tmparg '$' $param->getName().']';
                    }
                } else {
                    
$tmparg .= '$'.$param->getName();
                }
                
$args[] = $tmparg;
                unset (
$tmparg);
        }
        
$functions_list[$func_val] = 'function ' $func_val '(' strtr(implode(', '$args),array('], ['=>', ')). ')' PHP_EOL;
    }
    return 
$functions_list;
}

//函数参数分析调用方法: 
1fun_info(); //默认不传参数, 将返回所有的函数详情数组. 
2fun_info('strlen');  //支持对某个函数进行分析.
3fun_info('user');   //支持对某类进行函数分析, 如所有的用户自定义的函数. internal:系统, user:自定义.
4fun_info('fun_info'); //支持对自我分析.

//类方法参数分析调用方法:
1cls_info('mysql'); // 传入类名, 将返回所有方法调用参数详细.
2cls_info('mysql','query'); //输入第二个参数为单独分析query方法参数详细.
0
在线手册:中文 英文