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);

php ReflectionClass类遍历类中包含元素的方法的更多相关文章

  1. python中的enumerate函数用于遍历序列中的元素以及它们的下标

    enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')): print i,j 0 a1 b2 c ...

  2. python去除列表中重复元素的方法

    列表中元素位置的索引用的是L.index 本文实例讲述了Python去除列表中重复元素的方法.分享给大家供大家参考.具体如下: 比较容易记忆的是用内置的set 1 2 3 l1 = ['b','c', ...

  3. struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

    Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...

  4. 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

    Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...

  5. PHP从数组中删除元素的方法

    PHP从数组中删除元素的方法 本篇文章主要介绍了PHP从数组中删除元素的四种方法实例 删除一个元素,且保持原有索引不变 使用 unset 函数,示例如下: 1 2 3 4 5 <?php   $ ...

  6. PHP实现查询两个数组中不同元素的方法

    以下实例讲述了PHP实现查询两个数组中不同元素的方法.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  7. Python简单遍历字典及删除元素的方法

    Python简单遍历字典及删除元素的方法 这篇文章主要介绍了Python简单遍历字典及删除元素的方法,结合实例形式分析了Python遍历字典删除元素的操作方法与相关注意事项,需要的朋友可以参考下 具体 ...

  8. jquery遍历标签中自定义的属性方法

    在开发中我们有时会对html标签添加属性,如何遍历处理 <ul> <li name="li1" sortid="nav_1">aaaaa ...

  9. python中列表元素连接方法join用法实例

    python中列表元素连接方法join用法实例 这篇文章主要介绍了python中列表元素连接方法join用法,实例分析了Python中join方法的使用技巧,非常具有实用价值,分享给大家供大家参考. ...

随机推荐

  1. [GXOI/GZOI2019]旧词(树上差分+树剖)

    前置芝士:[LNOI2014]LCA 要是这题放HNOI就好了 原题:\(\sum_{l≤i≤r}dep[LCA(i,z)]\) 这题:\(\sum_{i≤r}dep[LCA(i,z)]^k\) 对于 ...

  2. nacos作为配置中心

    分布式配置中心 在微服务架构中,为什么需要一个统一的配置中心呢?如果用一句话来说那就是方便管理,降低出错的可能.比如:你开发环境是一套配置,测试环境是一套,生产环境又是一套.你如果手动去修改,难免会出 ...

  3. 第五周java学习总结

    学号 20175206<Java程序设计>第五周学习总结 教材学习内容总结 6.1 接口 为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口. 使用关键字interf ...

  4. JGUI源码:实现蒙版层显示(18)

    有的时候需要显示一个蒙版层,蒙版层显示的主要原理是在指定元素比如div上创建一个子元素div,设置absolute.宽高100%.设置z-index置于顶层,设置半透明效果,fadein,fadeou ...

  5. 生成ISO文件

    cat /dev/cdrom > image.iso dd if=/dev/cdrom of=image.iso mkisofs -V "Label" -o image.is ...

  6. :focus-within伪类选择器的3种应用

    1.点击form里任意input隐藏form以外内容提高用户体验 <form><input type="text"></form> form { ...

  7. 本地Git与Github建立关联

    准备 本地与Github建立连接,需要用到SSH公钥.一般安装完Git,会在用户目录中生成一个 .ssh的文件夹 如果没有此文件夹,可以通过命令创建 $ ssh-keygen -t rsa -C &q ...

  8. springboot启动的时候排除加载某些bean

    由于公司把redis相关的配置类,工具类放在了一个类似common的工程里,这样以后肯定不可避免的出现某些项目可能并不需要使用redis,但是还是依赖common里的别的一些类库 所以排除spring ...

  9. 论文翻译:BinaryNet: Training Deep Neural Networks with Weights and Activations Constrained to +1 or −1

    目录 摘要 引言 1.BinaryNet 符号函数 梯度计算和累积 通过离散化传播梯度 一些有用的成分 算法1 使用BinaryNet训练DNN 算法2 批量标准化转换(Ioffe和Szegedy,2 ...

  10. gojs常用API-画布定义

    持续更新中 基础画布定义API画布初始位置 initialContentAlignment: go.Spot.Center,画布位置,定义后就不能拖动画布了,画布位置交由gojs管理 contentA ...