Annotation of embedaddon/php/ext/standard/tests/class_object/get_class_methods_basic_002.phpt, revision 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>