php中反射问题

问题描述:

函数接收的一个参数存储了类名,想要动态的new出该类,并调用类中的方法

解决办法:使用php中的反射类

名词解释:PHP自5.0版本以后添加了反射机制,它提供了一套强大的反射API,允许你在PHP运行环境中,访问和使用类、方法、属性、参数和注释等,其功能十分强大,经常用于高扩展的PHP框架,自动加载插件,自动生成文档,甚至可以用来扩展PHP语言。由于它是PHP內建的oop扩展,为语言本身自带的特性,所以不需要额外添加扩展或者配置就可以使用。更多内容见官方文档

直接看代码:

// 首先必须引入映射类
use ReflectionClass;

class Plan
{
    public function display(Request $request){
		$param = $request->param();
		$class = new ReflectionClass('app\index\controller\Ipmodel'); // 建立 Ipmodel这个类的反射类 
		$instance = $class->newInstance();  // 实例化
		$result = $instance->dataOut($param['plan_id']);   // 调用类中的方法dataOut
        $attr = $class->getConstant('CONFIG');           // 获取类中的属性CONFIG

		$resData['code'] = 200;
		$resData['data'] = $result;
		return $resData;
	}
}

这里重点注意的是:1:必须记得引入ReflectionClass

2:创建反射类时传送的类名,必须包含完整的命名空间,即使使用了 use 关键字。否则找不到类名会抛出异常。

 

参考地址:https://www.cnblogs.com/youyoui/p/7300340.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值