1--TEST--
2ReflectionClass::getMethod()
3--CREDITS--
4Robin Fernandes <robinf@php.net>
5Steve Seear <stevseea@php.net>
6--FILE--
7<?php
8class pubf {
9    public function f() {}
10    static public function s() {}
11}
12class subpubf extends pubf {
13}
14
15class protf {
16    protected function f() {}
17    static protected function s() {}
18}
19class subprotf extends protf {
20}
21
22class privf {
23    private function f() {}
24    static private function s() {}
25}
26class subprivf extends privf  {
27}
28
29$classes = array("pubf", "subpubf", "protf", "subprotf",
30                 "privf", "subprivf");
31foreach($classes as $class) {
32    echo "Reflecting on class $class: \n";
33    $rc = new ReflectionClass($class);
34    echo "  --> Check for f(): ";
35    var_dump($rc->getMethod("f"));
36    echo "  --> Check for s(): ";
37    var_dump($rc->getMethod("s"));
38    echo "  --> Check for F(): ";
39    var_dump($rc->getMethod("F"));
40    echo "  --> Check for doesNotExist(): ";
41    try {
42        var_dump($rc->getMethod("doesNotExist"));
43    } catch (Exception $e) {
44        echo $e->getMessage() . "\n";
45    }
46}
47?>
48--EXPECTF--
49Reflecting on class pubf:
50  --> Check for f(): object(ReflectionMethod)#%d (2) {
51  ["name"]=>
52  string(1) "f"
53  ["class"]=>
54  string(4) "pubf"
55}
56  --> Check for s(): object(ReflectionMethod)#%d (2) {
57  ["name"]=>
58  string(1) "s"
59  ["class"]=>
60  string(4) "pubf"
61}
62  --> Check for F(): object(ReflectionMethod)#%d (2) {
63  ["name"]=>
64  string(1) "f"
65  ["class"]=>
66  string(4) "pubf"
67}
68  --> Check for doesNotExist(): Method pubf::doesNotExist() does not exist
69Reflecting on class subpubf:
70  --> Check for f(): object(ReflectionMethod)#%d (2) {
71  ["name"]=>
72  string(1) "f"
73  ["class"]=>
74  string(4) "pubf"
75}
76  --> Check for s(): object(ReflectionMethod)#%d (2) {
77  ["name"]=>
78  string(1) "s"
79  ["class"]=>
80  string(4) "pubf"
81}
82  --> Check for F(): object(ReflectionMethod)#%d (2) {
83  ["name"]=>
84  string(1) "f"
85  ["class"]=>
86  string(4) "pubf"
87}
88  --> Check for doesNotExist(): Method subpubf::doesNotExist() does not exist
89Reflecting on class protf:
90  --> Check for f(): object(ReflectionMethod)#%d (2) {
91  ["name"]=>
92  string(1) "f"
93  ["class"]=>
94  string(5) "protf"
95}
96  --> Check for s(): object(ReflectionMethod)#%d (2) {
97  ["name"]=>
98  string(1) "s"
99  ["class"]=>
100  string(5) "protf"
101}
102  --> Check for F(): object(ReflectionMethod)#%d (2) {
103  ["name"]=>
104  string(1) "f"
105  ["class"]=>
106  string(5) "protf"
107}
108  --> Check for doesNotExist(): Method protf::doesNotExist() does not exist
109Reflecting on class subprotf:
110  --> Check for f(): object(ReflectionMethod)#%d (2) {
111  ["name"]=>
112  string(1) "f"
113  ["class"]=>
114  string(5) "protf"
115}
116  --> Check for s(): object(ReflectionMethod)#%d (2) {
117  ["name"]=>
118  string(1) "s"
119  ["class"]=>
120  string(5) "protf"
121}
122  --> Check for F(): object(ReflectionMethod)#%d (2) {
123  ["name"]=>
124  string(1) "f"
125  ["class"]=>
126  string(5) "protf"
127}
128  --> Check for doesNotExist(): Method subprotf::doesNotExist() does not exist
129Reflecting on class privf:
130  --> Check for f(): object(ReflectionMethod)#%d (2) {
131  ["name"]=>
132  string(1) "f"
133  ["class"]=>
134  string(5) "privf"
135}
136  --> Check for s(): object(ReflectionMethod)#%d (2) {
137  ["name"]=>
138  string(1) "s"
139  ["class"]=>
140  string(5) "privf"
141}
142  --> Check for F(): object(ReflectionMethod)#%d (2) {
143  ["name"]=>
144  string(1) "f"
145  ["class"]=>
146  string(5) "privf"
147}
148  --> Check for doesNotExist(): Method privf::doesNotExist() does not exist
149Reflecting on class subprivf:
150  --> Check for f(): object(ReflectionMethod)#%d (2) {
151  ["name"]=>
152  string(1) "f"
153  ["class"]=>
154  string(5) "privf"
155}
156  --> Check for s(): object(ReflectionMethod)#%d (2) {
157  ["name"]=>
158  string(1) "s"
159  ["class"]=>
160  string(5) "privf"
161}
162  --> Check for F(): object(ReflectionMethod)#%d (2) {
163  ["name"]=>
164  string(1) "f"
165  ["class"]=>
166  string(5) "privf"
167}
168  --> Check for doesNotExist(): Method subprivf::doesNotExist() does not exist
169