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

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

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

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

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

首先感谢耐心的回答,在网上查找了一些资料查看,但是还是觉得类反射机制不是破坏了封闭原则吗?如果要保护一些隐私数据的话,使用类反射是不是也能对这些隐私数据进行修改?

是的,反射机制本身就是解除封闭的手段,其用途大多在于底层或不对外业务开发上,比如接口文档自动生成、实现钩子。既然反射后类如此开放了,自然你是可以任意修改的。

raw

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站大部分内容收集于互联网,如果有侵权内容、不妥之处,请联系删除。敬请谅解!

  关于博主【WANG-FEiHU】

Duplicate
-----------Complicate
--------------------------Appreciate
----------------------------------------[Fate]
-----------------------------------------------Elevate

三人行 有吾师

-------------花有重开日 梦无止境时-------------

  分类目录

  monitor(TD)

青春就是用来追忆的,当你怀揣着它时,它一文不值,只有将它耗尽后,再回过头看,一切才有了意义,爱过我们的人和伤害过我们的人,都是我们青春存在的意义。

在这有限的时间里,我们应该珍惜生命,珍惜机会,更要珍惜那得之不易的时间。因那滴答做响的时间脚步,一旦走过,再不回头。

要打败任何事情得先学会打败自己。

我会把每一次改变当做成长,哪怕是痛也值得。

时无英雄,使竖子成名

少年不识愁滋味,爱上层楼。爱上层楼。为赋新词强说愁。而今识尽愁滋味,欲说还休。欲说还休。却道天凉好个秋。