各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

php反射的原理

管理员 2023-09-05
PHP
133

php反射的原理

内容导读

收集整理的这篇技术教程文章主要介绍了php反射的原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1623字,纯文字阅读大概需要3分钟

内容图文

什么是反射呢?

在PHP的面向对象编程中的对象,它被系统赋予自省的能力,而这个自省的过程,我们把它叫做反射。

我们对反射的直观理解可以是,根据达到地,找到出发地和来源这么一个过程,通俗来讲就是,我给你一个光秃秃的对象,完事你可以根据这个对象,知道它所属的类,拥有哪些方法。

在PHP中,反射是指在PHP运行状态中,扩展分析PHP程序,导出或者提取出关于类、属性、方法、参数等的详细信息,包括注释。这种动态获取信息以及动态调用对象方法的功能,被称为反射API。

我们接下来通过一段代码来感受下:

class person{    public $name;    public $age;     public function say()    {        echo $this->name."<br>".$this->age;    }     public function set($name,$value)    {        echo 'set name to value';        $this->$name = $value;    }     public function get($name)    {        if(!isset($this->$name)){            echo 'unset name';            $this->$name = 'seting~~~';        }         return $this->$name;    }} $stu = new person();$stu->name = 'luyaran';$stu->age = 26;$stu->sex = 'girl';

上述代码是一个简单的类,我们通过实例化它,以及赋值,让它含有意义。

完事,我们就来通过反射API获取这个stu对象的方法和属性的一个列表:

//获取对象的属性列表$reflect = new ReflectionObject($stu);$props = $reflect->getProperties();foreach ($props as $key_p => $value_p) {    var_dump($value_p->getName());}//获取对象的方法列表$method = $reflect->getMethods();foreach ($method as $key_m => $value_m) {    var_dump($value_m->getName());}

同时呢,反射不仅可以用作类和对象,还可以用于函数,扩展模块,异常等。

咱们呢,在这里就不赘述了,最后一点篇幅,就来聊聊反射的一些作用。

首先,它可以用作文档生成,所以,我们可以用它对文档中的类进行扫描,逐个生成扫描文档。

反射可以探知类的内部结构,也可以用作hook来实现插件功能,还有就是可以做动态代理。

以上就是php反射的原理的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php反射的原理全部内容,希望文章能够帮你解决php反射的原理所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部