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.

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

  • 相关阅读:
    python基本数据类型(—)
    linux基本命令
    1、认识Mysql
    Flask-SQLAlchemy详解
    sqlalchemy基本增删改查
    pymongo方法详解
    uWSGI+Nginx部署
    uwsgi
    nginx负载均衡配置
    redis-sentinel主从复制高可用(哨兵)
  • 原文地址:https://www.cnblogs.com/oxspirt/p/14244336.html
Copyright © 2011-2022 走看看