1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
class Class1{
    public $var1 = 'var1';
    public $var2 = 'var2';
    private $var3 = 'var3';
 
    public function method1(){}
    public function method2(){}
    private function method3(){}
}
 
print_r(get_class_methods(Class1));
print_r(get_class_vars(Class1));
 
 
//用反射类可以获得私有属性和私有方法
$ref = new ReflectionClass(Class1);//Class1 可以为对象实例 $class = new Class();
 
print_r($ref->getMethods());
print_r($ref->getProperties());

输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Array
(
    [0] => method1
    [1] => method2
)
Array
(
    [var1] => var1
    [var2] => var2
)
Array
(
    [0] => ReflectionMethod Object
        (
            [name] => method1
            [class] => Class1
        )
 
    [1] => ReflectionMethod Object
        (
            [name] => method2
            [class] => Class1
        )
 
    [2] => ReflectionMethod Object
        (
            [name] => method3
            [class] => Class1
        )
 
)
Array
(
    [0] => ReflectionProperty Object
        (
            [name] => var1
            [class] => Class1
        )
 
    [1] => ReflectionProperty Object
        (
            [name] => var2
            [class] => Class1
        )
 
    [2] => ReflectionProperty Object
        (
            [name] => var3
            [class] => Class1
        )
 
)

获取PHP类的所有属性和所有方法,可通过反射机制的更多相关文章

  1. java进阶之反射:反射基础之如何获取一个类以及如何获取这个类的所有属性和方法(2)

    当我们知道一个类的对象,或者知道一个类的路径,或者指导这个类的名称的时候我们可以获取到这个类的类对象 当我们仅仅知道一个类的类对象的时候我们依然无法操作这个类,因为我们不知道这个类的属性,类的方法.那 ...

  2. java 获取实体类对象属性值的方法

    在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...

  3. Java反射特性--获取其他类实例并调用其方法

    1. 代码结构 .├── com│   └── test│   └── MyTest.java└── MainCall.java 2. 代码内容 MyTest.java: package com.te ...

  4. java 利用反射机制,获取实体所有属性和方法,并对属性赋值

    一个普通的实体Person: private int id; private String name; private Date createdTime;...//其它字段// get set方法 . ...

  5. java中的反射机制,以及如何通过反射获取一个类的构造方法 ,成员变量,方法,详细。。

    首先先说一下类的加载,流程.只有明确了类这个对象的存在才可以更好的理解反射的原因,以及反射的机制. 一.  类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三 ...

  6. 通过java反射机制获取该类的所有属性类型、值

    转自:http://blog.csdn.net/sd4000784/article/details/7448221 方法使用了这俩个包下的 field 和method import Java.lang ...

  7. Java反射机制能够获取的信息,与应用

    一.什么是Java反射机制? [1]反射机制是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法: [2]对于任意一个对象,都能够调用它的任意一个属性和方法: 像这种动态获取类的信息以及动 ...

  8. C# 反射机制以及方法

    目录: 一. 反射的主要特性 1.反射中一个非常重要的类型就是 Type 1)当没有对象的时候使用这种方式来获取某个类型的Type 2)当已经获得对象后通过对象的GetType()方法来获取指定对象的 ...

  9. JavaSE基础复习---Class类与反射机制

    ---恢复内容开始--- 目录: 1.java.lang.class类 2.Java中的反射机制 3.运行时与编译时概念 1. java.lang.class类 Java程序在运行时,Java运行时系 ...

随机推荐

  1. Visio文本相关操作

    三种方式:双击形状输入文本,插入文本框, 文本工具 文本块工具 选择后可以对文本进行移动旋转 如果要给文本加入边框 直接显示线条就可以了 因为都是文本框 添加特殊文本: 插入符号 插入域 比如当前时间 ...

  2. 用实例理解设计模式——代理模式(Python版)

    代理模式:为其他对象提供一种代理以控制对这个对象的访问. 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式分为: 静态代理 动态代 ...

  3. win10下使用mklink命令给C盘软件搬家

    在windows下,大多数软件会默认安装在C盘,即使小心翼翼地点开“自定义”->“安装路径”,然后把软件安装到其他盘,还是会有很多软件用到的数据文件被塞到C盘,虽然可以到注册表修改软件默认安装路 ...

  4. Excel如何快速选定指定区域

    在日常办公中我们经常遇见需要选中指定的区域,这样选种比较快捷节省时间,要比用鼠标下拉要方便很多. 1.框选的是起始的位置(A1) 2.终止位置 3.这就是我们所要选中的区域例如(A1:H21) 总结: ...

  5. DNS自述:我是如何为域名找到家的

    对于互联网一代的我们,一出生就学会使用电脑.当我们对着浏览器地址栏输入www.baidu.com的时候,百度的首页就出现在面前.但你可曾想过,为什么我们输入www.baidu.com就可以弹出百度首页 ...

  6. FUTABA舵机参数大全

    S9150 Digital servo 尺寸:47.5X27X25.3mm 重量:53g 速度:0.18sec/60"(4.8V) 扭力:5.8kg:cm(4.8V) ——————————— ...

  7. 升级添加到现有iOS Xcode项目的Flutter

    如果你在2019年8月之前将Flutter添加到现有iOS项目,本文值得你一看. 在2019年7月30日,合并合并请求flutter / flutter#36793之前Flutter 1.8.4-pr ...

  8. Redis入门--1.安装Redis

    redis是什么? 是完全开源免费的,用c语言编写的,是一个单线程,高性能的(key/value)内存数据库,基于内存运行并支持持久化的nosql数据库 redis能干嘛? 主要是用来做缓存,但不仅仅 ...

  9. 解决httpclient设置代理ip之后请求无响应的问题

    httpclient这个工具类对于大家来说应该都不陌生吧,最近在使用过程中出现了碰到一个棘手的问题,当请求的接口地址由http变成https之后,程序执行到 httpClient.execute(ht ...

  10. ArcEngine版本管理(Version)项目总结

    需求: 在ArcGIS项目中,大型的数据库都是使用ArcSDE进行连接管理.使用的数据版本(Version)都是默认版本(sde.default).这样多个人员在编辑的过程中就直接编辑的是默认版本数据 ...