ReflectionParameter_DefaultValueConstant_basic1.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. ReflectionParameter::isDefaultValueConstant() && getDefaultValueConstantName()
  3. --FILE--
  4. <?php
  5. define("CONST_TEST_1", "const1");
  6. function ReflectionParameterTest($test1=array(), $test2 = CONST_TEST_1, $test3 = CASE_LOWER) {
  7. echo $test;
  8. }
  9. $reflect = new ReflectionFunction('ReflectionParameterTest');
  10. foreach($reflect->getParameters() as $param) {
  11. if($param->getName() == 'test1') {
  12. var_dump(@$param->isDefaultValueConstant());
  13. }
  14. if($param->getName() == 'test2') {
  15. var_dump(@$param->isDefaultValueConstant());
  16. }
  17. if($param->isDefaultValueAvailable() && @$param->isDefaultValueConstant()) {
  18. var_dump(@$param->getDefaultValueConstantName());
  19. }
  20. }
  21. class Foo2 {
  22. const bar = 'Foo2::bar';
  23. }
  24. class Foo {
  25. const bar = 'Foo::bar';
  26. public function baz($param1 = self::bar, $param2=Foo2::bar, $param3=CONST_TEST_1) {
  27. }
  28. }
  29. $method = new ReflectionMethod('Foo', 'baz');
  30. $params = $method->getParameters();
  31. foreach ($params as $param) {
  32. if (@$param->isDefaultValueConstant()) {
  33. var_dump(@$param->getDefaultValueConstantName());
  34. }
  35. }
  36. ?>
  37. --EXPECT--
  38. bool(false)
  39. bool(true)
  40. string(12) "CONST_TEST_1"
  41. string(10) "CASE_LOWER"
  42. string(9) "self::bar"
  43. string(9) "Foo2::bar"
  44. string(12) "CONST_TEST_1"