好好爱自己!

php 反射的用法,用来获取源码未知的类具有的方法

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

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

1
2
3
4
5
6
7
8
9
10
11
<?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, 获取方法的可选参数,及其默认值。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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.

 

 

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

posted @   立志做一个好的程序员  阅读(191)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2019-01-07 mongoose系列——几行代码实现CRUD
2016-01-07 配置 php-fpm 监听的socket

不断学习创作,与自己快乐相处

点击右上角即可分享
微信分享提示