php中怎么使用ReflectionClass的getMethods方法
浏览数 188852
赞
(0)
可使用ReflectionClass的getMethods方法获取类方法的各种属性,如是否为public、是否为抽象方法等。
创建一个抽象类Cls150602,包含一个属性title及三个方法getTitle1,getTitle2,getTitle3。
abstract Class Cls150602 { private $title = 'title'; public function getTitle1() { echo 'Cls150602.getTitle1:' . $this->title; } protected function getTitle2() { echo 'Cls150602.getTitle2:' . $this->title; } abstract function getTitle1(); } |
创建一个基于类Cls150602的ReflectionClass实例,并通过getMethods方法获得类所有的方法对象。
$cls150602_info = new ReflectionClass('Cls150602'); $all_methods = $cls150602_info->getMethods(); |
可通过方法对象的isPublic方法判断方法是否为public的。
foreach($all_methods as $method) { $method_name = $method->getName(); echo $method_name . 'is public? ' . ($method->isPublic() ? 'Yes' : 'No') . ' '; } |
可通过方法对象的isAbstract方法判断方法是否为抽象的。
foreach($all_methods as $method) { $method_name = $method->getName(); echo $method_name . 'is abstract? ' . ($method->isAbstract() ? 'Yes' : 'No') . ' '; $doc = $method->getDocComment(); //读取该方法前的注释内容 } |
参考: https://jingyan.baidu.com/article/8ebacdf028213449f65cd535.html
PHP获取当前类名、方法名
__CLASS__ 获取当前类名
__FUNCTION__ 当前函数名(confirm)
__METHOD__ 当前方法名 (bankcard::confirm)
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
注:这些常量前后均是两个下划线。
get_class(class name);//取得当前语句所在类的类名
get_class_methods(class name);//取得class name 类的所有的方法名,并且组成一个数组
get_class_vars(class name);//取得class name 类的所有的变量名,并组成一个数组。
__CLASS__ 获取当前类名
__FUNCTION__ 当前函数名(confirm)
__METHOD__ 当前方法名 (bankcard::confirm)
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
注:这些常量前后均是两个下划线。
get_class(class name);//取得当前语句所在类的类名
get_class_methods(class name);//取得class name 类的所有的方法名,并且组成一个数组
get_class_vars(class name);//取得class name 类的所有的变量名,并组成一个数组。