• PHP ReflectionClass


     1 <?php
     2 /**
     3  * @desc test reflectionclass
     4  * @author songweiqing
     5  * @create_time 2015-01-7
     6  *
     7  */
     8  class Test{
     9     public $attr1 = 'attr1';
    10     protected $attr2 = 'attr2';
    11     private $attr3 = 'attr3';
    12     const ATTR4 = 'I AM THE ATTRIBUTE 4';
    13     public static $attr5 = 'attr5';
    14     
    15     public function __construct(){
    16         
    17         self::$attr5 = 'I love you baby';
    18     }
    19     public function getAttr1(){
    20         
    21         echo $this->attr1;
    22     }
    23     //获取属性2
    24     protected function getAttr2(){
    25         
    26         echo $this->attr2;
    27     } 
    28     /**
    29      * @desc 获取属性3
    30      * @return string 
    31      */
    32     private function getAttr3(){
    33         echo $this->attr3;
    34     }
    35     
    36     public static function getAttr5(){
    37         echo self::$attr5;
    38     }
    39 }
    40 
    41 $reflection = new ReflectionClass('Test');
    42 //var_dump($reflection->getName());//获取类名getName();
    43 //var_dump($reflection->getConstant("ATTR4"));//获取指定的常量名
    44 //var_dump($reflection->getConstants());//获取一组常量名
    45 //var_dump($reflection->getConstructor());//获取构造函数,没有构造函数返回null
    46 //var_dump($reflection->getDefaultProperties());//获取默认属性,常量属性不包括
    47 //var_dump($reflection->getDocComment());//获取针对该类的注释,对于类中法中的注释,忽略,没有返回false
    48 //var_dump($reflection->getEndLine());//获取类中最后一行行数
    49 //var_dump($reflection->getFileName());//获取定义类的类名
    50 //var_dump($reflection->getMethods());//获取所有类中的方法
    51 //var_dump($reflection->getProperties());//获取所有属性,不包含常量属性
    52 //$instance = $reflection->newInstanceArgs();//实例化反射的该类
    53 //$instance = $reflection->newInstance('Test');实例化指定的类
    View Code
  • 相关阅读:
    [转载]「服务」WCF中NetNamedPipeBinding的应用实例
    [转载] ABP框架理论学习之后台工作(Jobs)和后台工作者(Workers)
    .NET Core use NLog
    把.netcore console 安装到Windows 系统服务。
    利用Linq Skip() Take()分页
    C#访问Java的WebService添加SOAPHeader验证的问题
    马丁福勒 关于微服务特点的描述
    转载 springboot 配置读取
    luajit与NYI
    lua启用lua-resty-core
  • 原文地址:https://www.cnblogs.com/ikasa007/p/4209026.html
Copyright © 2020-2023  润新知