php 反射

news/2025/2/12 10:38:03/

PHP 具有完整的反射 API,增加了内省类、接口、函数、方法和扩展的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。

A.php

<?php/*** 类的注释*/
class A
{public $one = '';public $two = '';//Constructorpublic function __construct(){//Constructor}//print variable onepublic function echoOne($a,$b){return "echoOne---- {$a}|{$b}";}/*** print variable two*/public function echoTwo(){return "echoTwo\n";}
}

反射获取相关信息实例

  /*** 反射* @return void*/public function reflectDemo(){//Instantiate the object$a = new \A();var_dump($a);// Instantiate the reflection object$reflector = new \ReflectionClass($a);//Now get all the properties from class A in to $properties array$properties = $reflector->getProperties();var_dump($properties);$i =1;//Now go through the $properties array and populate each propertyforeach($properties as $property){//Populating properties$a->{$property->getName()}=$i;//Invoking the method to print what was populated//$a->{"echo".ucfirst($property->getName())}()."\n";$i++;}// 相当于实例化这个类 等同于上面的 $a$instance = $reflector->newInstance();
//        var_dump($instance);// 方法一//invoke methodecho $instance->echoTwo();// 方法二// get method$method = $reflector->getMethod('echoOne');echo $method->invokeArgs($instance,["abd","eff"]);// 方法三 没有参数的方法$method = $reflector->getMethod('echoTwo');echo $method->invoke($instance);// 获取所有 method$methods = $reflector->getMethods();var_dump($methods);// 获取类注释 方法注释var_dump($reflector->getDocComment());var_dump($method->getDocComment());//判断某个方法是不是公共的$method = new \ReflectionMethod($a,'echoOne');if ($method->isPublic()) {echo "method is public";}// 获取方法的参数和参数个数var_dump($method->getParameters());var_dump($method->getNumberOfParameters());}

http://www.ppmy.cn/news/1200802.html

相关文章

jbase编译与部署的优化

上一篇的演示只是涉及自动编译业务脚本。演示时候工程编译是超级慢的。因为把静态资源放在了Web工程下&#xff0c;每次编译都要拷贝&#xff0c;运行起码是1分钟&#xff0c;不能忍受&#xff0c;为此思考工程结构改解决这个问题&#xff0c;顺带方便开发的发布。运行WebLoade…

Maven中<scope>中等级的区别

标签指定了依赖项的级别吗&#xff0c;默认是compile &#xff08;编译&#xff09;。意味着依赖项将会在编译时和运行时都被包含在项目中 <scope> 标签指定了依赖项的级别为 import 。除了 import 级别&#xff0c;Maven还支持以下几种级别&#xff1a; compile &#x…

【CSDN 每日一练 ★★☆】【回溯】组合

【CSDN 每日一练 ★★☆】【回溯】组合 回溯 题目 给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 示例 输入:n 4, k 2 输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],] 思路 * DSF 回溯 实现 import java.util.*; public class Solution…

[React] React-Redux 快速入门

文章目录 1.安装 Redux Toolkit 和 React Redux2.创建 Redux Store3.为 React 提供 Redux Store​4.创建 Redux State Slice5.添加 Slice Reducers 到 Store6.在 React 组件中使用 Redux State 和 Actions​7.总结 1.安装 Redux Toolkit 和 React Redux npm install reduxjs/t…

Halcon WPF 开发学习笔记(0):开篇介绍

文章目录 文章专栏Halcon是什么&#xff1f;安装教学视频链接简单来说 Halcon快速开发环境确认新建项目 文章专栏 Halcon开发 Halcon是什么&#xff1f; 史上最全VisionPro和Halcon 的详细对比 Halcon简述 Halcon基础大全&#xff08;基础算子、高阶算子、数组、分割、字符检测…

【3D图像分割】基于Pytorch的VNet 3D 图像分割5(改写数据流篇)

在这篇文章&#xff1a;【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割2&#xff08;基础数据流篇&#xff09; 的最后&#xff0c;我们提到了&#xff1a; 在采用vent模型进行3d数据的分割训练任务中&#xff0c;输入大小是16*96*96&#xff0c;这个的裁剪是放到Dataset类…

微信小程序overflow-x超出部分样式不渲染

把display:flex改成display:inline-flex&#xff0c; 将对象作为内联块级弹性伸缩盒显示&#xff0c; 类似与是子元素将父元素撑开&#xff0c;样式就显示出来了

ASP.NETCore6开启文件服务允许通过url访问附件(图片)

需求背景 最近在做一个工作台的文件上传下载功能&#xff0c;主要想实现上传图片之后&#xff0c;可以通过url直接访问。由于url直接访问文件不安全&#xff0c;所以需要手动开启文件服务。 配置 文件路径如下&#xff0c;其中Files是存放文件的目录&#xff1a; 那么&…