zoukankan      html  css  js  c++  java
  • PHP反射类的理解(代码篇)

    <?php
    /**
    * Created by PhpStorm.
    * User:
    * Date: 2017/6/12
    * Time: 14:34
    * 关于反射类的理解
    */
    class Person {


    public $datang = '123';

    public $datang1 = '1234';

    private function getName(){
    echo $this->datang;
    }

    public function getName1(){
    echo $this->datang1;
    }

    }

    //建立 Person这个类的反射类
    $class = new ReflectionClass('Person');

    //打印所有属性名,包含private,protected,public
    $properties = $class->getProperties();
    foreach ($properties as $key => $value) {
    var_dump($value->getName());
    }



    //打印所有属性的注释并正则,包含private,protected,public
    foreach($properties as $property) {
    $docblock = $property->getDocComment();
    //只能打印多行注释
    var_dump($docblock);
    preg_match('/ type=([a-z_]*) /', $docblock, $matches);
    var_dump($matches);
    }


    //打印所有方法名
    foreach ($class->getMethods() as $key => $value) {
    var_dump($value->getName());
    }

    /** 如何执行方法 */
    //相当于实例化Person 类
    $instance = $class->newInstanceArgs();
    //执行getName1方法,方法必须是public属性的,否则会报fatal error
    $instance->getName1();

    //获取Person getName1方法
    $ec=$class->getmethod('getName1');
    //执行getName1方法,方法必须是public属性的,否则会报fatal error
    $ec->invoke($instance);
  • 相关阅读:
    Character 比较注意先要转换成字符串类型
    ibats注意
    初试体验java多线程
    解压jar
    Velocity语法--转载
    python 批量请求url
    java.lang.NoClassDefFoundError
    疑问
    sql常用语句--转载
    Spring AOP高级——源码实现(3)AopProxy代理对象之JDK动态代理的创建过程
  • 原文地址:https://www.cnblogs.com/datang6777/p/6992958.html
Copyright © 2011-2022 走看看