zoukankan      html  css  js  c++  java
  • php 反射的用法,用来获取源码未知的类具有的方法

    参考: https://www.cnblogs.com/fps2tao/p/10393755.html

      1. 用途1,获取源代码未知的类的方法: 如class Redis 有哪些方法?

    <?php
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    echo $redis->ping();
    $redis->set('fly', 'zzzzz');
    echo $redis->get('fly');
    
    $reflection = new ReflectionClass('Redis');
    $m = $reflection->getMethods();
    var_dump($m);
                                                                 
    

      

     2. 用途2, 获取方法的可选参数,及其默认值。

    <?php
    
    class A {
      public function say($name, $age = 12) {
    
      }
    
    }
    
    $a = new A();
    $reflectionObj = new ReflectionMethod($a, 'say');
    $params = $reflectionObj->getParameters();
    foreach($params as $p) {
       if ($p->isOptional()) {  // 或使用isDefaultValueAvailable, 检测是否有可用的默认值
         $paramVal = $p->getDefaultValue();
         var_dump($p->getName());
         var_dump($paramVal);
       }
    }
    

      上面的$age 就是optional参数(可选参数,非必填参数), 其默认值为12.

    ——————————————————————————————————————

  • 相关阅读:
    c++运算符重载
    c++ const_cast
    SHL
    C++拷贝构造函数(深拷贝,浅拷贝)
    ps命令详解
    static 修饰符
    “宝洁八大问”整理篇
    linux grep命令
    C++操作符重载
    linux中删除指定日期之前的文件
  • 原文地址:https://www.cnblogs.com/oxspirt/p/14244336.html
Copyright © 2011-2022 走看看