首页 >

PHP 反射(Reflection)使用实例

后端开发|php教程PHP 反射(Reflection)使用实例
PHP,Reflection
后端开发-php教程
PHP 反射(Reflection)使用实例
静态源码 导航,vscode怎么打开多个,打造ubuntu硬件,tomcat线程id,sqlite支撑的数据量,人工智能开发网络爬虫,php 用户注册登录,seo推广有哪几家,asp网站表格代码怎么写,易语言组合框打开网页,移动端模板开发教程视频教程lzw
  这篇文章主要介绍了PHP 反射(Reflection)使用实例,本文讲解了ReflectionClass、ReflectionExtension、 ReflectionFunction、ReflectionMethod、ReflectionObject、ReflectionParameter等类的使用实例,需要的朋友可以参考下
代购网源码,vscode手机端,ubuntu副屏无法打开应用,tomcat是运行,oc sqlite多线程,安卓日历插件,当前前端就行js框架,爬虫 识别图片卡通,php 输出流,如何找seo工作seo专员引流,手机选号网站源码下载,网页置cookie,最土 58模板,狼人古堡杀微信小程序语音lzw
  PHP Reflection是用于获取类、扩展、方法、函数、对象、参数、属性的详细信息。
recyclerview源码,vscode工程树,ezpad ubuntu,tomcat管理 win,sqlite跑分代表什么,帝国cms 问卷插件,前端3大框架学那个先,拼多多商品爬虫分析软件,php 正则匹配内容,seo推广值得信赖,微信分享网站源码,很炫的网页,手机版易企秀模板分享lzw
  ReflectionClass类获取类相关信息,如获取属性、方法、文档注释等。

?

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

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, we”re 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’, ‘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 获取函数或方法参数的相关信息。

?

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’), 0);

print_r($p->getPosition()); //0

print_r($p->getName()); //v

ReflectionProperty 获取类的属性的相关信息。

?

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’, ‘name’);

print_r($p->getDocComment());

http://www.liuzhongwei.com/PHPjc/1000099.htmlwww.liuzhongwei.comtruehttp://www.liuzhongwei.com/PHPjc/1000099.htmlTechArticlePHP 反射(Reflection)使用实例 这篇文章主要介绍了PHP 反射(Reflection)使用实例,本文讲解了ReflectionClass、ReflectionExtension、 ReflectionFunction、Reflec…

PHP 反射(Reflection)使用实例
  • PHP 反射(Reflection)使用实例
  • PHP 反射(Reflection)使用实例 | PHP 反射(Reflection)使用实例 ...

    PHP 反射(Reflection)使用实例
  • PHP 高级编程(2)
  • PHP 高级编程(2) | PHP 高级编程(2) ...

    PHP 反射(Reflection)使用实例
  • PHP 反射(Reflection)用法示例代码
  • PHP 反射(Reflection)用法示例代码 | PHP 反射(Reflection)用法示例代码 ...