123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- --TEST--
- ReflectionParameter::getClass(), getDeclaringClass(), getDeclaringFunction()
- --FILE--
- <?php
- function test($nix, Array $ar, &$ref, stdClass $std,
- NonExistingClass $na, stdClass &$opt = NULL, $def = "FooBar")
- {
- }
- class test
- {
- function method($nix, Array $ar, &$ref, stdClass $std,
- NonExistingClass $na, stdClass $opt = NULL, $def = "FooBar")
- {
- }
- }
- function check_params_decl_func($r, $f)
- {
- $c = $r->$f();
- $sep = $c instanceof ReflectionMethod ? $c->class . '::' : '';
- echo $f . ': ' . ($c ? $sep . $c->name : 'NULL') . "()\n";
- }
- function check_params_decl_class($r, $f)
- {
- $c = $r->$f();
- echo $f . ': ' . ($c ? $c->name : 'NULL') . "\n";
- }
- function check_params_func($r, $f)
- {
- echo $f . ': ';
- $v = $r->$f();
- var_dump($v);
- }
- function check_params($r)
- {
- echo "#####" . ($r instanceof ReflectionMethod ? $r->class . '::' : '') . $r->name . "()#####\n";
- $i = 0;
- foreach($r->getParameters() as $p)
- {
- echo "===" . $i . "===\n";
- $i++;
- check_params_func($p, 'getName');
- check_params_func($p, 'isPassedByReference');
- try
- {
- check_params_decl_class($p, 'getClass');
- }
- catch(ReflectionException $e)
- {
- echo $e->getMessage() . "\n";
- }
- check_params_decl_class($p, 'getDeclaringClass');
- // check_params_decl_func($p, 'getDeclaringFunction');
- check_params_func($p, 'isArray');
- check_params_func($p, 'allowsNull');
- check_params_func($p, 'isOptional');
- check_params_func($p, 'isDefaultValueAvailable');
- if ($p->isOptional())
- {
- check_params_func($p, 'getDefaultValue');
- }
- }
- }
- check_params(new ReflectionFunction('test'));
- check_params(new ReflectionMethod('test::method'));
- ?>
- --EXPECTF--
- #####test()#####
- ===0===
- getName: string(3) "nix"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: NULL
- getDeclaringClass: NULL
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(true)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===1===
- getName: string(2) "ar"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: NULL
- getDeclaringClass: NULL
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(true)
- allowsNull: bool(false)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===2===
- getName: string(3) "ref"
- isPassedByReference: bool(true)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: NULL
- getDeclaringClass: NULL
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(true)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===3===
- getName: string(3) "std"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: stdClass
- getDeclaringClass: NULL
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(false)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===4===
- getName: string(2) "na"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- Class "NonExistingClass" does not exist
- getDeclaringClass: NULL
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(false)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===5===
- getName: string(3) "opt"
- isPassedByReference: bool(true)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: stdClass
- getDeclaringClass: NULL
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(true)
- isOptional: bool(true)
- isDefaultValueAvailable: bool(true)
- getDefaultValue: NULL
- ===6===
- getName: string(3) "def"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: NULL
- getDeclaringClass: NULL
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(true)
- isOptional: bool(true)
- isDefaultValueAvailable: bool(true)
- getDefaultValue: string(6) "FooBar"
- #####test::method()#####
- ===0===
- getName: string(3) "nix"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: NULL
- getDeclaringClass: test
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(true)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===1===
- getName: string(2) "ar"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: NULL
- getDeclaringClass: test
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(true)
- allowsNull: bool(false)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===2===
- getName: string(3) "ref"
- isPassedByReference: bool(true)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: NULL
- getDeclaringClass: test
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(true)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===3===
- getName: string(3) "std"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: stdClass
- getDeclaringClass: test
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(false)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===4===
- getName: string(2) "na"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- Class "NonExistingClass" does not exist
- getDeclaringClass: test
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(false)
- isOptional: bool(false)
- isDefaultValueAvailable: bool(false)
- ===5===
- getName: string(3) "opt"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: stdClass
- getDeclaringClass: test
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(true)
- isOptional: bool(true)
- isDefaultValueAvailable: bool(true)
- getDefaultValue: NULL
- ===6===
- getName: string(3) "def"
- isPassedByReference: bool(false)
- Deprecated: Method ReflectionParameter::getClass() is deprecated in %s on line %d
- getClass: NULL
- getDeclaringClass: test
- isArray:
- Deprecated: Method ReflectionParameter::isArray() is deprecated in %s on line %d
- bool(false)
- allowsNull: bool(true)
- isOptional: bool(true)
- isDefaultValueAvailable: bool(true)
- getDefaultValue: string(6) "FooBar"
|