php

推荐列表 站点导航

当前位置:首页 > 脚本编程 > php >

PHP 反射(Reflection)使用实例

来源:互联网  作者:网友投稿  发布时间:2021-01-08 17:05
这篇文章主要介绍了PHP 反射(Reflection)使用实例,本文讲解了ReflectionClass、ReflectionExtension、 ReflectionFunction、ReflectionMe...

getName); print_r($rm-isPublic()); print_r($rm-getDocComment()); ReflectionObject 类 用于获取对象相关信息 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 class Person { public $name; public function __construct($name) { $this-name = $name; } public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } } $a = new Person(a); $ro = new ReflectionObject($a); print_r($ro-getMethods()); ReflectionParameter 获取函数或方法参数的相关信息, were setting this private */ private $_allowDynamicAttributes = false; /** type=primary_autoincrement */ protected $id = 0; /** type=varchar length=255 null */ protected $name; /** type=text null */ protected $biography; public function getId() { return $this-id; } public function setId($v) { $this-id = $v; } public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } public function getBiography() { return $this-biography; } public function setBiography($v) { $this-biography = $v; } } //导出类 ReflectionClass::export(Person); $r = new ReflectionClass(Person); //获取所有属性 print_r($r-getProperties()); /** * 获取指定属性 * ReflectionProperty::IS_STATIC * ReflectionProperty::IS_PUBLIC * ReflectionProperty::IS_PROTECTED * ReflectionProperty::IS_PRIVATE */ print_r($r-getProperties(ReflectionProperty::IS_PRIVATE)); //获取注释 print_r($r-getProperty(id)-getDocComment()); //获取方法 print_r($r-getMethods()); ReflectionExtension 类用于获取扩展相关信息 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $re = new ReflectionExtension(Reflection); print_r($re-getClasses()); //扩展的所有类 print_r($re-getClassNames()); //扩展所有类名 $dom = new ReflectionExtension(mysql); print_r($dom-getConstants());//扩展常量 print_r($dom-getDependencies());//该扩展依赖 print_r($dom-getFunctions());//扩展方法 print_r($dom-getINIEntries());//扩展ini信息 print_r($dom-getName());//扩展名称 print_r($dom-getVersion());//扩展版本 print_r($dom-info());//扩展信息 print_r($dom-isPersistent());//是否是持久扩展 print_r($dom-isTemporary()); //是否是临时扩展 ReflectionFunction类 用户获取函数相关信息 ? 1 2 3 4 5 $rf = new ReflectionFunction(array_merge); foreach($rf-getParameters() as $item) { echo $item . PHP_EOL; } ReflectionMethod类用户获取方法相关信息 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 class Person { public $name; /** * get name of person */ public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } } $rm = new ReflectionMethod(Person, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Person { /** 测试 */ public $name; public function __construct($name) { $this-name = $name; } public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } } $p = new ReflectionProperty(Person, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Person { public $name; public function __construct($name) { $this-name = $name; } public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } } $p = new ReflectionParameter(array(Person, setName), 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 ?php class Person { /** * For the sake of demonstration, 0); print_r($p-getPosition()); //0 print_r($p-getName()); //v ReflectionProperty 获取类的属性的相关信息。

name); print_r($p-getDocComment()); ,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/jiaob/php/12037.shtml

最新文章
PHP异常处理浅析 PHP异常处理浅析

时间:2021-01-06

PHP嵌套输出缓冲代码实例 PHP嵌套输出缓冲代码实例

时间:2021-01-06

PHP的伪随机数与真随机数 PHP的伪随机数与真随机数

时间:2021-01-04

php实现的日历程序 php实现的日历程序

时间:2020-12-29

PHP实现链式操作的核心思 PHP实现链式操作的核心思

时间:2020-12-29

PHP中把错误日志保存在系 PHP中把错误日志保存在系

时间:2020-12-29

Destoon启用https 后台登录不 Destoon启用https 后台登录不

时间:2020-12-23

2019年最好用的10个php开发 2019年最好用的10个php开发

时间:2020-12-23

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

PHP 反射(Reflection)使用实例

2021-01-08 编辑:网友投稿

getName); print_r($rm-isPublic()); print_r($rm-getDocComment()); ReflectionObject 类 用于获取对象相关信息 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 class Person { public $name; public function __construct($name) { $this-name = $name; } public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } } $a = new Person(a); $ro = new ReflectionObject($a); print_r($ro-getMethods()); ReflectionParameter 获取函数或方法参数的相关信息, were setting this private */ private $_allowDynamicAttributes = false; /** type=primary_autoincrement */ protected $id = 0; /** type=varchar length=255 null */ protected $name; /** type=text null */ protected $biography; public function getId() { return $this-id; } public function setId($v) { $this-id = $v; } public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } public function getBiography() { return $this-biography; } public function setBiography($v) { $this-biography = $v; } } //导出类 ReflectionClass::export(Person); $r = new ReflectionClass(Person); //获取所有属性 print_r($r-getProperties()); /** * 获取指定属性 * ReflectionProperty::IS_STATIC * ReflectionProperty::IS_PUBLIC * ReflectionProperty::IS_PROTECTED * ReflectionProperty::IS_PRIVATE */ print_r($r-getProperties(ReflectionProperty::IS_PRIVATE)); //获取注释 print_r($r-getProperty(id)-getDocComment()); //获取方法 print_r($r-getMethods()); ReflectionExtension 类用于获取扩展相关信息 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $re = new ReflectionExtension(Reflection); print_r($re-getClasses()); //扩展的所有类 print_r($re-getClassNames()); //扩展所有类名 $dom = new ReflectionExtension(mysql); print_r($dom-getConstants());//扩展常量 print_r($dom-getDependencies());//该扩展依赖 print_r($dom-getFunctions());//扩展方法 print_r($dom-getINIEntries());//扩展ini信息 print_r($dom-getName());//扩展名称 print_r($dom-getVersion());//扩展版本 print_r($dom-info());//扩展信息 print_r($dom-isPersistent());//是否是持久扩展 print_r($dom-isTemporary()); //是否是临时扩展 ReflectionFunction类 用户获取函数相关信息 ? 1 2 3 4 5 $rf = new ReflectionFunction(array_merge); foreach($rf-getParameters() as $item) { echo $item . PHP_EOL; } ReflectionMethod类用户获取方法相关信息 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 class Person { public $name; /** * get name of person */ public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } } $rm = new ReflectionMethod(Person, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Person { /** 测试 */ public $name; public function __construct($name) { $this-name = $name; } public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } } $p = new ReflectionProperty(Person, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Person { public $name; public function __construct($name) { $this-name = $name; } public function getName() { return $this-name; } public function setName($v) { $this-name = $v; } } $p = new ReflectionParameter(array(Person, setName), 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 ?php class Person { /** * For the sake of demonstration, 0); print_r($p-getPosition()); //0 print_r($p-getName()); //v ReflectionProperty 获取类的属性的相关信息。

name); print_r($p-getDocComment()); ,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/jiaob/php/12037.shtml

相关文章

风云图片

推荐阅读

返回php频道首页