PHP Reflection uses instances. PHP Reflection (Reflection) use example this article mainly introduces the PHP Reflection (Reflection) use example, this article explains ReflectionClass, ReflectionExtension, ReflectionFunction, Reflec PHP Reflection (Reflection) use instance
This article describes the use cases of PHP Reflection (Reflection). This article describes the use cases of ReflectionClass, ReflectionExtension, ReflectionFunction, ReflectionMethod, ReflectionObject, ReflectionParameter, and other classes. For more information, see
PHP Reflection is used to obtain detailed information about classes, extensions, methods, functions, objects, parameters, and attributes.
The ReflectionClass class obtains information about a class, such as attributes, methods, and document comments.
?
|
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 |
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;
}
}
// Export class
ReflectionClass: export ('person ');
$ R = new ReflectionClass ('person ');
// Obtain all attributes
Print_r ($ r-> getProperties ());
/**
* Get the specified property
* ReflectionProperty: IS_STATIC
* ReflectionProperty: IS_PUBLIC
* ReflectionProperty: IS_PROTECTED
* ReflectionProperty: IS_PRIVATE
*/
Print_r ($ r-> getProperties (ReflectionProperty: IS_PRIVATE ));
// Obtain comments
Print_r ($ r-> getProperty ('id')-> getDocComment ());
// Obtain method
Print_r ($ r-> getMethods ());
|
The ReflectionExtension class is used to obtain extended information.
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
$ Re = new ReflectionExtension ('Reflection ');
Print_r ($ re-> getClasses (); // All extended classes
Print_r ($ re-> getClassNames (); // extend all class names
$ Dom = new ReflectionExtension ('mysql ');
Print_r ($ dom-> getConstants (); // extended constant
Print_r ($ dom-> getDependencies (); // The Extension dependency
Print_r ($ dom-> getFunctions (); // extension method
Print_r ($ dom-> getINIEntries (); // extended ini information
Print_r ($ dom-> getName (); // extension name
Print_r ($ dom-> getVersion (); // extended version
Print_r ($ dom-> info (); // extended information
Print_r ($ dom-> isPersistent (); // whether it is a persistent extension
Print_r ($ dom-> isTemporary (); // whether it is a temporary extension
|
The ReflectionFunction user obtains function-related information.
?
|
1
2
3
4
5 |
$ Rf = new ReflectionFunction ('Array _ merge ');
Foreach ($ rf-> getParameters () as $ item ){
Echo $ item. PHP_EOL;
}
|
ReflectionMethod users obtain method-related information
?
|
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 ());
|
The ReflectionObject class is used to obtain object-related information.
?
|
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 ($ );
Print_r ($ ro-> getMethods ());
|
ReflectionParameter obtains information about function or method parameters.
?
|
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 obtains information about the attributes of a class.
?
|
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 {
/** Test */
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.bkjia.com/PHPjc/1000099.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1000099.htmlTechArticlePHP Reflection (Reflection) use example this article mainly introduces the PHP Reflection (Reflection) use example, this article explains ReflectionClass, ReflectionExtension, ReflectionFunction, Reflec...