parameters_001.phpt 985 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. --TEST--
  2. ReflectionParameter Check for parameter being optional
  3. --FILE--
  4. <?php
  5. class Test {
  6. function func($x, $y = NULL){
  7. }
  8. }
  9. $f = new ReflectionMethod('Test', 'func');
  10. var_dump($f->getNumberOfParameters());
  11. var_dump($f->getNumberOfRequiredParameters());
  12. $p = new ReflectionParameter(array('Test', 'func'), 'x');
  13. var_dump($p->isOptional());
  14. $p = new ReflectionParameter(array('Test', 'func'), 'y');
  15. var_dump($p->isOptional());
  16. try {
  17. $p = new ReflectionParameter(array('Test', 'func'), 'z');
  18. var_dump($p->isOptional());
  19. } catch (Exception $e) {
  20. var_dump($e->getMessage());
  21. }
  22. try {
  23. $p = new ReflectionParameter(array('Test', 'func'), -1);
  24. var_dump($p->isOptional());
  25. } catch (\ValueError $e) {
  26. var_dump($e->getMessage());
  27. }
  28. ?>
  29. --EXPECT--
  30. int(2)
  31. int(1)
  32. bool(false)
  33. bool(true)
  34. string(54) "The parameter specified by its name could not be found"
  35. string(91) "ReflectionParameter::__construct(): Argument #2 ($param) must be greater than or equal to 0"