php ReflectionClass类遍历类中包含元素的方法

ReflectionClass 类

类内容

class MyClass {

    const myconst1 = 100000001;
    const myconst2 = [
        1 => '开始时间',
        2 => '结束时间',
    ];

    public $title = '中国移动';
    public $city = '湖南长沙';
    static $type = [
        1 => '男',
        2 => '女',
    ];
    static $create_time = 1530000000;

    public function actionIndex() {
        
    }

    public function actionAdd() {
        
    }

}

$MyClass = new MyClass();  # 实例化类

$rc = new ReflectionClass('MyClass');  # 实例化自定义类的ReflectionClass信息

 

获取静态成员属性

/**
 * 获取静态成员属性
 * static成员能够限制外部的访问,因为static的成员是属于类的,是不属于任何对象实例,是在类第一次被加载的时候分配的空间,其他类是无法访问的,只对类的实例共享,能一定程度对类该成员形成保护
 * 在类的外部不需要实例而直接使用类名就可以访问静态的成员, 当然,实例化后也可访问
 */
echo MyClass::$create_time;
echo $MyClass::$create_time;

 

获取静态成员属性的name->value

/**
 * 获取静态成员属性的name->value
 */
$v = $rc->getStaticProperties();   # 获取静态(static)属性
print_r($v);

 

 

获取函数(方法体)

/**
 * 获取函数(方法体)
 */
$v = $rc->getMethods();    # 获取方法的数组
print_r($v);
foreach ($v as $value) {
      echo $value->getName();
      echo "\n\r";
}

 

 

获取属性

/**
 * 获取属性
 */
$v = $rc->getProperties();  # 获取一组属性
print_r($v);
# 获取属性的name与值
foreach ($v as $value) {
    $value = $value->getName();    # 获取对象name
    if (isset($MyClass::$$value)) {  # 静态成员属性
        print_r([$value => $MyClass::$$value]);
    } elseif (isset($MyClass->$value)) {  # 成员属性
        print_r([$value => $MyClass->$value]);
    }
}

 

获取自定义常量

/**
 * 获取自定义常量
 */
echo MyClass::myconst1;

 

 遍历自定义常量

/**
 * 遍历自定义常量
 */
$v = $rc->getConstants();   # 获取一组常量
print_r($v);

 

转载于:https://www.cnblogs.com/dcb3688/p/4608061.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值