Annotation of embedaddon/php/ext/reflection/tests/parameters_002.phpt, revision 1.1.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>