zoukankan      html  css  js  c++  java
  • php反射

    * 反射 : 反射就是在php运行状态中 , 扩展分析php程序 , 导出或提取出类的 方法 属性 参数 注释等详细信息 这种动态获取信息以及
    * 动态调用对象方法的功能就是反射 API
    * 其实说白了 反射就是 通过对象 去找到对象所属类 和类信息
    *
    * 有利有弊 违背了 类的信息不被外界知道的原则 例如 私有方法 和属性
    * 反射这个东西 我自己理解的不深 但是我觉得反射应该可以做很多事情 等以后发现了 再来修改吧 !^_^

    撸过的代码:
     1 class Answer{
     2     public $a = 1;
     3     private $name;
     4 
     5     public function __set($name, $value)
     6     {
     7         // TODO: Implement __set() method.
     8         $this->$name = $value;
     9     }
    10 
    11     public function run()
    12     {
    13         return 'Hey '.$this->name.' ! just run .<br>';
    14     }
    15 }
    16 
    17 
    18 $a = new Answer();
    19 $a->name = 'kins';
    20 echo $a->run();
    21 
    22 
    23 //反射
    24 
    25 //获取属性
    26 $reflect = new ReflectionObject($a);
    27 $props = $reflect->getProperties();
    28 foreach ($props as $prop){
    29     print $prop->getName()."
    ";
    30 }
    31 echo "<br>";
    32 //获取方法
    33 $m = $reflect->getMethods();
    34 foreach ($m as $v){
    35     print $v->getName()."
    ";
    36 }
    37 echo "<br>";
    38 
    39 //使用class函数
    40 //获取对象属性关联数组
    41 var_dump(get_class_vars(get_class($a)));
    42 echo "<br>";
    43 //类方法名
    44 var_dump(get_class_methods(get_class($a)));
    45 echo "<br>";
    46 
    47 echo get_class($a);exit;
  • 相关阅读:
    spring缓存笔记 半注解版
    乐优商城项目视频及源码
    spring cloud Eureka
    idea+maven搭建ssh,支持事务,无hibernate文件整合
    BUU->CRYPTO 知识点分类
    file-upl0ad
    [RoarCTF 2019]Simple Upload
    BUU UPLOAD COURSE 1
    [GXYCTF2019]Ping Ping Ping
    [SWPU2019]Web1
  • 原文地址:https://www.cnblogs.com/kinsFeng/p/9213345.html
Copyright © 2011-2022 走看看