zoukankan      html  css  js  c++  java
  • 获取PHP类的所有属性和所有方法,可通过反射机制

    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
            )
     
    )
  • 相关阅读:
    linux C gcc -lm
    ubuntu 工作区中拖动一个窗体到另一个工作区就卡住回不到桌面了
    ArrayList调用remove方法需要注意的地方
    关于Java中File的renameTo函数
    Java管道流
    NPOI Excel 单元格背景颜色对照表
    Java 简单图片截取
    maven pom.xml 配置 cxf-codegen-plugin 生成web服务客户类型
    ZeroClipboard 简单应用
    PromiseJs
  • 原文地址:https://www.cnblogs.com/shynshyn/p/8059012.html
Copyright © 2011-2022 走看看