Annotation of embedaddon/php/ext/reflection/tests/parameters_002.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ReflectionParameter::getClass(), getDeclaringClass(), getDeclaringFunction()
! 3: --FILE--
! 4: <?php
! 5:
! 6: function test($nix, Array $ar, &$ref, stdClass $std, NonExistingClass $na, stdClass &$opt = NULL, $def = "FooBar")
! 7: {
! 8: }
! 9:
! 10: class test
! 11: {
! 12: function test($nix, Array $ar, &$ref, stdClass $std, NonExistingClass $na, stdClass $opt = NULL, $def = "FooBar")
! 13: {
! 14: }
! 15: }
! 16:
! 17: function check_params_decl_func($r, $f)
! 18: {
! 19: $c = $r->$f();
! 20: echo $f . ': ' . ($c ? ($c instanceof ReflectionMethod ? $c->class . '::' : '') . $c->name : 'NULL') . "()\n";
! 21: }
! 22:
! 23: function check_params_decl_class($r, $f)
! 24: {
! 25: $c = $r->$f();
! 26: echo $f . ': ' . ($c ? $c->name : 'NULL') . "\n";
! 27: }
! 28:
! 29: function check_params_func($r, $f)
! 30: {
! 31: echo $f . ': ';
! 32: $v = $r->$f();
! 33: var_dump($v);
! 34: }
! 35:
! 36: function check_params($r)
! 37: {
! 38: echo "#####" . ($r instanceof ReflectionMethod ? $r->class . '::' : '') . $r->name . "()#####\n";
! 39: $i = 0;
! 40: foreach($r->getParameters() as $p)
! 41: {
! 42: echo "===" . $i . "===\n";
! 43: $i++;
! 44: check_params_func($p, 'getName');
! 45: check_params_func($p, 'isPassedByReference');
! 46: try
! 47: {
! 48: check_params_decl_class($p, 'getClass');
! 49: }
! 50: catch(ReflectionException $e)
! 51: {
! 52: echo $e->getMessage() . "\n";
! 53: }
! 54: check_params_decl_class($p, 'getDeclaringClass');
! 55: // check_params_decl_func($p, 'getDeclaringFunction');
! 56: check_params_func($p, 'isArray');
! 57: check_params_func($p, 'allowsNull');
! 58: check_params_func($p, 'isOptional');
! 59: check_params_func($p, 'isDefaultValueAvailable');
! 60: if ($p->isOptional())
! 61: {
! 62: check_params_func($p, 'getDefaultValue');
! 63: }
! 64: }
! 65: }
! 66:
! 67: check_params(new ReflectionFunction('test'));
! 68:
! 69: check_params(new ReflectionMethod('test::test'));
! 70:
! 71: ?>
! 72: ===DONE===
! 73: <?php exit(0); ?>
! 74: --EXPECT--
! 75: #####test()#####
! 76: ===0===
! 77: getName: string(3) "nix"
! 78: isPassedByReference: bool(false)
! 79: getClass: NULL
! 80: getDeclaringClass: NULL
! 81: isArray: bool(false)
! 82: allowsNull: bool(true)
! 83: isOptional: bool(false)
! 84: isDefaultValueAvailable: bool(false)
! 85: ===1===
! 86: getName: string(2) "ar"
! 87: isPassedByReference: bool(false)
! 88: getClass: NULL
! 89: getDeclaringClass: NULL
! 90: isArray: bool(true)
! 91: allowsNull: bool(false)
! 92: isOptional: bool(false)
! 93: isDefaultValueAvailable: bool(false)
! 94: ===2===
! 95: getName: string(3) "ref"
! 96: isPassedByReference: bool(true)
! 97: getClass: NULL
! 98: getDeclaringClass: NULL
! 99: isArray: bool(false)
! 100: allowsNull: bool(true)
! 101: isOptional: bool(false)
! 102: isDefaultValueAvailable: bool(false)
! 103: ===3===
! 104: getName: string(3) "std"
! 105: isPassedByReference: bool(false)
! 106: getClass: stdClass
! 107: getDeclaringClass: NULL
! 108: isArray: bool(false)
! 109: allowsNull: bool(false)
! 110: isOptional: bool(false)
! 111: isDefaultValueAvailable: bool(false)
! 112: ===4===
! 113: getName: string(2) "na"
! 114: isPassedByReference: bool(false)
! 115: Class NonExistingClass does not exist
! 116: getDeclaringClass: NULL
! 117: isArray: bool(false)
! 118: allowsNull: bool(false)
! 119: isOptional: bool(false)
! 120: isDefaultValueAvailable: bool(false)
! 121: ===5===
! 122: getName: string(3) "opt"
! 123: isPassedByReference: bool(true)
! 124: getClass: stdClass
! 125: getDeclaringClass: NULL
! 126: isArray: bool(false)
! 127: allowsNull: bool(true)
! 128: isOptional: bool(true)
! 129: isDefaultValueAvailable: bool(true)
! 130: getDefaultValue: NULL
! 131: ===6===
! 132: getName: string(3) "def"
! 133: isPassedByReference: bool(false)
! 134: getClass: NULL
! 135: getDeclaringClass: NULL
! 136: isArray: bool(false)
! 137: allowsNull: bool(true)
! 138: isOptional: bool(true)
! 139: isDefaultValueAvailable: bool(true)
! 140: getDefaultValue: string(6) "FooBar"
! 141: #####test::test()#####
! 142: ===0===
! 143: getName: string(3) "nix"
! 144: isPassedByReference: bool(false)
! 145: getClass: NULL
! 146: getDeclaringClass: test
! 147: isArray: bool(false)
! 148: allowsNull: bool(true)
! 149: isOptional: bool(false)
! 150: isDefaultValueAvailable: bool(false)
! 151: ===1===
! 152: getName: string(2) "ar"
! 153: isPassedByReference: bool(false)
! 154: getClass: NULL
! 155: getDeclaringClass: test
! 156: isArray: bool(true)
! 157: allowsNull: bool(false)
! 158: isOptional: bool(false)
! 159: isDefaultValueAvailable: bool(false)
! 160: ===2===
! 161: getName: string(3) "ref"
! 162: isPassedByReference: bool(true)
! 163: getClass: NULL
! 164: getDeclaringClass: test
! 165: isArray: bool(false)
! 166: allowsNull: bool(true)
! 167: isOptional: bool(false)
! 168: isDefaultValueAvailable: bool(false)
! 169: ===3===
! 170: getName: string(3) "std"
! 171: isPassedByReference: bool(false)
! 172: getClass: stdClass
! 173: getDeclaringClass: test
! 174: isArray: bool(false)
! 175: allowsNull: bool(false)
! 176: isOptional: bool(false)
! 177: isDefaultValueAvailable: bool(false)
! 178: ===4===
! 179: getName: string(2) "na"
! 180: isPassedByReference: bool(false)
! 181: Class NonExistingClass does not exist
! 182: getDeclaringClass: test
! 183: isArray: bool(false)
! 184: allowsNull: bool(false)
! 185: isOptional: bool(false)
! 186: isDefaultValueAvailable: bool(false)
! 187: ===5===
! 188: getName: string(3) "opt"
! 189: isPassedByReference: bool(false)
! 190: getClass: stdClass
! 191: getDeclaringClass: test
! 192: isArray: bool(false)
! 193: allowsNull: bool(true)
! 194: isOptional: bool(true)
! 195: isDefaultValueAvailable: bool(true)
! 196: getDefaultValue: NULL
! 197: ===6===
! 198: getName: string(3) "def"
! 199: isPassedByReference: bool(false)
! 200: getClass: NULL
! 201: getDeclaringClass: test
! 202: isArray: bool(false)
! 203: allowsNull: bool(true)
! 204: isOptional: bool(true)
! 205: isDefaultValueAvailable: bool(true)
! 206: getDefaultValue: string(6) "FooBar"
! 207: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>