什么是反射呢?
在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反射的道理的细致内容,更多请关注ki4网别的相干文章!