1--TEST--
2ReflectionMethod class - various methods
3--FILE--
4<?php
5
6function reflectMethod($class, $method) {
7    $methodInfo = new ReflectionMethod($class, $method);
8    echo "**********************************\n";
9    echo "Reflecting on method $class::$method()\n\n";
10    echo "\nisFinal():\n";
11    var_dump($methodInfo->isFinal());
12    echo "\nisAbstract():\n";
13    var_dump($methodInfo->isAbstract());
14    echo "\nisPublic():\n";
15    var_dump($methodInfo->isPublic());
16    echo "\nisPrivate():\n";
17    var_dump($methodInfo->isPrivate());
18    echo "\nisProtected():\n";
19    var_dump($methodInfo->isProtected());
20    echo "\nisStatic():\n";
21    var_dump($methodInfo->isStatic());
22    echo "\nisConstructor():\n";
23    var_dump($methodInfo->isConstructor());
24    echo "\nisDestructor():\n";
25    var_dump($methodInfo->isDestructor());
26    echo "\n**********************************\n";
27}
28
29class TestClass
30{
31    public function foo() {
32        echo "Called foo()\n";
33    }
34
35    static function stat() {
36        echo "Called stat()\n";
37    }
38
39    private function priv() {
40        echo "Called priv()\n";
41    }
42
43    protected function prot() {}
44
45    public function __destruct() {}
46}
47
48class DerivedClass extends TestClass {}
49
50interface TestInterface {
51    public function int();
52}
53
54reflectMethod("DerivedClass", "foo");
55reflectMethod("TestClass", "stat");
56reflectMethod("TestClass", "priv");
57reflectMethod("TestClass", "prot");
58reflectMethod("DerivedClass", "prot");
59reflectMethod("TestInterface", "int");
60reflectMethod("ReflectionProperty", "__construct");
61reflectMethod("TestClass", "__destruct");
62
63?>
64--EXPECT--
65**********************************
66Reflecting on method DerivedClass::foo()
67
68
69isFinal():
70bool(false)
71
72isAbstract():
73bool(false)
74
75isPublic():
76bool(true)
77
78isPrivate():
79bool(false)
80
81isProtected():
82bool(false)
83
84isStatic():
85bool(false)
86
87isConstructor():
88bool(false)
89
90isDestructor():
91bool(false)
92
93**********************************
94**********************************
95Reflecting on method TestClass::stat()
96
97
98isFinal():
99bool(false)
100
101isAbstract():
102bool(false)
103
104isPublic():
105bool(true)
106
107isPrivate():
108bool(false)
109
110isProtected():
111bool(false)
112
113isStatic():
114bool(true)
115
116isConstructor():
117bool(false)
118
119isDestructor():
120bool(false)
121
122**********************************
123**********************************
124Reflecting on method TestClass::priv()
125
126
127isFinal():
128bool(false)
129
130isAbstract():
131bool(false)
132
133isPublic():
134bool(false)
135
136isPrivate():
137bool(true)
138
139isProtected():
140bool(false)
141
142isStatic():
143bool(false)
144
145isConstructor():
146bool(false)
147
148isDestructor():
149bool(false)
150
151**********************************
152**********************************
153Reflecting on method TestClass::prot()
154
155
156isFinal():
157bool(false)
158
159isAbstract():
160bool(false)
161
162isPublic():
163bool(false)
164
165isPrivate():
166bool(false)
167
168isProtected():
169bool(true)
170
171isStatic():
172bool(false)
173
174isConstructor():
175bool(false)
176
177isDestructor():
178bool(false)
179
180**********************************
181**********************************
182Reflecting on method DerivedClass::prot()
183
184
185isFinal():
186bool(false)
187
188isAbstract():
189bool(false)
190
191isPublic():
192bool(false)
193
194isPrivate():
195bool(false)
196
197isProtected():
198bool(true)
199
200isStatic():
201bool(false)
202
203isConstructor():
204bool(false)
205
206isDestructor():
207bool(false)
208
209**********************************
210**********************************
211Reflecting on method TestInterface::int()
212
213
214isFinal():
215bool(false)
216
217isAbstract():
218bool(true)
219
220isPublic():
221bool(true)
222
223isPrivate():
224bool(false)
225
226isProtected():
227bool(false)
228
229isStatic():
230bool(false)
231
232isConstructor():
233bool(false)
234
235isDestructor():
236bool(false)
237
238**********************************
239**********************************
240Reflecting on method ReflectionProperty::__construct()
241
242
243isFinal():
244bool(false)
245
246isAbstract():
247bool(false)
248
249isPublic():
250bool(true)
251
252isPrivate():
253bool(false)
254
255isProtected():
256bool(false)
257
258isStatic():
259bool(false)
260
261isConstructor():
262bool(true)
263
264isDestructor():
265bool(false)
266
267**********************************
268**********************************
269Reflecting on method TestClass::__destruct()
270
271
272isFinal():
273bool(false)
274
275isAbstract():
276bool(false)
277
278isPublic():
279bool(true)
280
281isPrivate():
282bool(false)
283
284isProtected():
285bool(false)
286
287isStatic():
288bool(false)
289
290isConstructor():
291bool(false)
292
293isDestructor():
294bool(true)
295
296**********************************
297