ReflectionClass_getStaticPropertyValue_001.phpt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. --TEST--
  2. ReflectionClass::getStaticPropertyValue()
  3. --CREDITS--
  4. Robin Fernandes <robinf@php.net>
  5. Steve Seear <stevseea@php.net>
  6. --FILE--
  7. <?php
  8. class A {
  9. static private $privateOverridden = "original private";
  10. static protected $protectedOverridden = "original protected";
  11. static public $publicOverridden = "original public";
  12. }
  13. class B extends A {
  14. static private $privateOverridden = "changed private";
  15. static protected $protectedOverridden = "changed protected";
  16. static public $publicOverridden = "changed public";
  17. }
  18. echo "Retrieving static values from A:\n";
  19. $rcA = new ReflectionClass('A');
  20. var_dump($rcA->getStaticPropertyValue("privateDoesNotExist", "default value"));
  21. var_dump($rcA->getStaticPropertyValue("privateOverridden"));
  22. var_dump($rcA->getStaticPropertyValue("protectedDoesNotExist", "default value"));
  23. var_dump($rcA->getStaticPropertyValue("protectedOverridden"));
  24. var_dump($rcA->getStaticPropertyValue("publicOverridden"));
  25. echo "\nRetrieving static values from B:\n";
  26. $rcB = new ReflectionClass('B');
  27. var_dump($rcB->getStaticPropertyValue("privateOverridden"));
  28. var_dump($rcB->getStaticPropertyValue("protectedOverridden"));
  29. var_dump($rcB->getStaticPropertyValue("publicOverridden"));
  30. echo "\nRetrieving non-existent values from A with no default value:\n";
  31. try {
  32. var_dump($rcA->getStaticPropertyValue("protectedDoesNotExist"));
  33. echo "you should not see this";
  34. } catch (Exception $e) {
  35. echo $e->getMessage() . "\n";
  36. }
  37. try {
  38. var_dump($rcA->getStaticPropertyValue("privateDoesNotExist"));
  39. echo "you should not see this";
  40. } catch (Exception $e) {
  41. echo $e->getMessage() . "\n";
  42. }
  43. ?>
  44. --EXPECT--
  45. Retrieving static values from A:
  46. string(13) "default value"
  47. string(16) "original private"
  48. string(13) "default value"
  49. string(18) "original protected"
  50. string(15) "original public"
  51. Retrieving static values from B:
  52. string(15) "changed private"
  53. string(17) "changed protected"
  54. string(14) "changed public"
  55. Retrieving non-existent values from A with no default value:
  56. Property A::$protectedDoesNotExist does not exist
  57. Property A::$privateDoesNotExist does not exist