首页 > 开发 > PHP > 正文

PHP Reflection API详解

2024-05-04 22:37:10
字体:
来源:转载
供稿:网友

PHP Reflection API是PHP5才有的新功能,它是用来导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。

PHP Reflection API有:

class Reflection { }interface Reflector { }class ReflectionException extends Exception { }class ReflectionFunction implements Reflector { }class ReflectionParameter implements Reflector { }class ReflectionMethod extends ReflectionFunction { }class ReflectionClass implements Reflector { }class ReflectionObject extends ReflectionClass { }class ReflectionProperty implements Reflector { }class ReflectionExtension implements Reflector { } 

具体API说明:

①Reflection类

<?phpclass Reflection{  public static mixed export(Reflector r [,bool return])  //导出一个类或方法的详细信息  public static array getModifierNames(int modifiers)  //取得修饰符的名字}?>

②ReflectionException类

该类继承标准类,没特殊方法和属性。

③ReflectionFunction类

<?phpclass ReflectionFunction implements Reflector{  final private __clone()  public object __construct(string name)  public string __toString()  public static string export()  //导出该函数的详细信息  public string getName()  //取得函数名  public bool isInternal()  //测试是否为系统内部函数  public bool isUserDefined()  //测试是否为用户自定义函数  public string getFileName()  //取得文件名,包括路径名  public int getStartLine()  //取得定义函数的起始行  public int getEndLine()  //取得定义函数的结束行  public string getDocComment()  //取得函数的注释  public array getStaticVariables()  //取得静态变量  public mixed invoke(mixed* args)  //调用该函数,通过参数列表传参数  public mixed invokeArgs(array args)  //调用该函数,通过数组传参数  public bool returnsReference()  //测试该函数是否返回引用  public ReflectionParameter[] getParameters()  //取得该方法所需的参数,返回值为对象数组  public int getNumberOfParameters()  //取得该方法所需的参数个数  public int getNumberOfRequiredParameters()  //取得该方法所需的参数个数}?>

④ReflectionParameter类:

<?phpclass ReflectionParameter implements Reflector{  final private __clone()  public object __construct(string name)  public string __toString()  public static string export()  //导出该参数的详细信息  public string getName()  //取得参数名  public bool isPassedByReference()  //测试该参数是否通过引用传递参数  public ReflectionClass getClass()  //若该参数为对象,返回该对象的类名  public bool isArray()  //测试该参数是否为数组类型  public bool allowsNull()  //测试该参数是否允许为空  public bool isOptional()  //测试该参数是否为可选的,当有默认参数时可选  public bool isDefaultValueAvailable()  //测试该参数是否为默认参数  public mixed getDefaultValue()  //取得该参数的默认值}?>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表