Annotation of embedaddon/php/ext/standard/tests/class_object/get_class_methods_basic_002.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test get_class_methods() function : basic functionality
3: --FILE--
4: <?php
5: /* Prototype : proto array get_class_methods(mixed class)
6: * Description: Returns an array of method names for class or class instance.
7: * Source code: Zend/zend_builtin_functions.c
8: * Alias to functions:
9: */
10:
11: /*
12: * Test behaviour with various visibility levels.
13: */
14:
15: class C {
16: private function privC() {}
17: protected function protC() {}
18: public function pubC() {}
19:
20: public static function testFromC() {
21: echo "Accessing C from C:\n";
22: var_dump(get_class_methods("C"));
23: echo "Accessing D from C:\n";
24: var_dump(get_class_methods("D"));
25: echo "Accessing X from C:\n";
26: var_dump(get_class_methods("X"));
27: }
28: }
29:
30: class D extends C {
31: private function privD() {}
32: protected function protD() {}
33: public function pubD() {}
34:
35: public static function testFromD() {
36: echo "Accessing C from D:\n";
37: var_dump(get_class_methods("C"));
38: echo "Accessing D from D:\n";
39: var_dump(get_class_methods("D"));
40: echo "Accessing X from D:\n";
41: var_dump(get_class_methods("X"));
42: }
43: }
44:
45: class X {
46: private function privX() {}
47: protected function protX() {}
48: public function pubX() {}
49:
50: public static function testFromX() {
51: echo "Accessing C from X:\n";
52: var_dump(get_class_methods("C"));
53: echo "Accessing D from X:\n";
54: var_dump(get_class_methods("D"));
55: echo "Accessing X from X:\n";
56: var_dump(get_class_methods("X"));
57: }
58: }
59:
60: echo "Accessing D from global scope:\n";
61: var_dump(get_class_methods("D"));
62:
63: C::testFromC();
64: D::testFromD();
65: X::testFromX();
66:
67: echo "Done";
68: ?>
69: --EXPECTF--
70: Accessing D from global scope:
71: array(4) {
72: [0]=>
73: string(4) "pubD"
74: [1]=>
75: string(9) "testFromD"
76: [2]=>
77: string(4) "pubC"
78: [3]=>
79: string(9) "testFromC"
80: }
81: Accessing C from C:
82: array(4) {
83: [0]=>
84: string(5) "privC"
85: [1]=>
86: string(5) "protC"
87: [2]=>
88: string(4) "pubC"
89: [3]=>
90: string(9) "testFromC"
91: }
92: Accessing D from C:
93: array(7) {
94: [0]=>
95: string(5) "protD"
96: [1]=>
97: string(4) "pubD"
98: [2]=>
99: string(9) "testFromD"
100: [3]=>
101: string(5) "privC"
102: [4]=>
103: string(5) "protC"
104: [5]=>
105: string(4) "pubC"
106: [6]=>
107: string(9) "testFromC"
108: }
109: Accessing X from C:
110: array(2) {
111: [0]=>
112: string(4) "pubX"
113: [1]=>
114: string(9) "testFromX"
115: }
116: Accessing C from D:
117: array(3) {
118: [0]=>
119: string(5) "protC"
120: [1]=>
121: string(4) "pubC"
122: [2]=>
123: string(9) "testFromC"
124: }
125: Accessing D from D:
126: array(7) {
127: [0]=>
128: string(5) "privD"
129: [1]=>
130: string(5) "protD"
131: [2]=>
132: string(4) "pubD"
133: [3]=>
134: string(9) "testFromD"
135: [4]=>
136: string(5) "protC"
137: [5]=>
138: string(4) "pubC"
139: [6]=>
140: string(9) "testFromC"
141: }
142: Accessing X from D:
143: array(2) {
144: [0]=>
145: string(4) "pubX"
146: [1]=>
147: string(9) "testFromX"
148: }
149: Accessing C from X:
150: array(2) {
151: [0]=>
152: string(4) "pubC"
153: [1]=>
154: string(9) "testFromC"
155: }
156: Accessing D from X:
157: array(4) {
158: [0]=>
159: string(4) "pubD"
160: [1]=>
161: string(9) "testFromD"
162: [2]=>
163: string(4) "pubC"
164: [3]=>
165: string(9) "testFromC"
166: }
167: Accessing X from X:
168: array(4) {
169: [0]=>
170: string(5) "privX"
171: [1]=>
172: string(5) "protX"
173: [2]=>
174: string(4) "pubX"
175: [3]=>
176: string(9) "testFromX"
177: }
178: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>