PHP 反射类和实例化类的区别

查看:82
本文介绍了PHP 反射类和实例化类的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

今天在码代码的时候发现一个问题,在获取一个类的实例的时候发现在构造函数中存在参数依赖,导致不能直接实例化该类.通过leader指导使用了reflectionClass,但是不明白其中的区别.希望有人能解答一下

$fronted_instance = new \ReflectionClass($fronted_name);
$backend_instance = new \ReflectionClass($backend_name);

解决方案

这两者是一个个体,但又有本质区别。

new class()是一个类对象封装后的展现,你不需要知道类的私有成员和方法,以及内部作用机制,便可以直接通过类开放的成员方法和属性来使用它。

而 new ReflectionClass()反射类则是一个类对象开封后的展现,它将类的内部属性,包括公开或私有的属性/方法,是否是静态,接口、继承、命名空间信息,甚至注释等全部公开,都可以通过反射api进行访问。

由此可见反射类的强大之处。但通常使用反射在于编写业务更为复杂的底层逻辑。而对外的功能开发还是使用实例化类封装,也更安全便捷。

望采纳。

这篇关于PHP 反射类和实例化类的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆