ReflectionMethod_setAccessible.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. --TEST--
  2. Test ReflectionMethod::setAccessible().
  3. --FILE--
  4. <?php
  5. class A {
  6. private function aPrivate($a) { print __METHOD__ . "\n"; }
  7. private static function aPrivateStatic($a) { print __METHOD__ . "\n"; }
  8. protected function aProtected($a) { print __METHOD__ . "\n"; }
  9. protected static function aProtectedStatic($a) { print __METHOD__ . "\n"; }
  10. }
  11. $private = new ReflectionMethod('A', 'aPrivate');
  12. $privateStatic = new ReflectionMethod('A', 'aPrivateStatic');
  13. $protected = new ReflectionMethod('A', 'aProtected');
  14. $protectedStatic = new ReflectionMethod('A', 'aProtectedStatic');
  15. try {
  16. $private->invoke(new A, NULL);
  17. }
  18. catch (ReflectionException $e) {
  19. var_dump($e->getMessage());
  20. }
  21. try {
  22. $private->invokeArgs(new A, array(NULL));
  23. }
  24. catch (ReflectionException $e) {
  25. var_dump($e->getMessage());
  26. }
  27. try {
  28. $privateStatic->invoke(NULL, NULL);
  29. }
  30. catch (ReflectionException $e) {
  31. var_dump($e->getMessage());
  32. }
  33. try {
  34. $privateStatic->invokeArgs(NULL, array(NULL));
  35. }
  36. catch (ReflectionException $e) {
  37. var_dump($e->getMessage());
  38. }
  39. try {
  40. $protected->invoke(new A, NULL);
  41. }
  42. catch (ReflectionException $e) {
  43. var_dump($e->getMessage());
  44. }
  45. try {
  46. $protected->invokeArgs(new A, array(NULL));
  47. }
  48. catch (ReflectionException $e) {
  49. var_dump($e->getMessage());
  50. }
  51. try {
  52. $protectedStatic->invoke(NULL, NULL);
  53. }
  54. catch (ReflectionException $e) {
  55. var_dump($e->getMessage());
  56. }
  57. try {
  58. $protectedStatic->invokeArgs(NULL, array(NULL));
  59. }
  60. catch (ReflectionException $e) {
  61. var_dump($e->getMessage());
  62. }
  63. $private->setAccessible(TRUE);
  64. $privateStatic->setAccessible(TRUE);
  65. $protected->setAccessible(TRUE);
  66. $protectedStatic->setAccessible(TRUE);
  67. $private->invoke(new A, NULL);
  68. $private->invokeArgs(new A, array(NULL));
  69. $privateStatic->invoke(NULL, NULL);
  70. $privateStatic->invokeArgs(NULL, array(NULL));
  71. $protected->invoke(new A, NULL);
  72. $protected->invokeArgs(new A, array(NULL));
  73. $protectedStatic->invoke(NULL, NULL);
  74. $protectedStatic->invokeArgs(NULL, array(NULL));
  75. ?>
  76. --EXPECT--
  77. string(73) "Trying to invoke private method A::aPrivate() from scope ReflectionMethod"
  78. string(73) "Trying to invoke private method A::aPrivate() from scope ReflectionMethod"
  79. string(79) "Trying to invoke private method A::aPrivateStatic() from scope ReflectionMethod"
  80. string(79) "Trying to invoke private method A::aPrivateStatic() from scope ReflectionMethod"
  81. string(77) "Trying to invoke protected method A::aProtected() from scope ReflectionMethod"
  82. string(77) "Trying to invoke protected method A::aProtected() from scope ReflectionMethod"
  83. string(83) "Trying to invoke protected method A::aProtectedStatic() from scope ReflectionMethod"
  84. string(83) "Trying to invoke protected method A::aProtectedStatic() from scope ReflectionMethod"
  85. A::aPrivate
  86. A::aPrivate
  87. A::aPrivateStatic
  88. A::aPrivateStatic
  89. A::aProtected
  90. A::aProtected
  91. A::aProtectedStatic
  92. A::aProtectedStatic