ReflectionMethod_setAccessible.phpt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. --TEST--
  2. Test that ReflectionMethod::setAccessible() has no effects
  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. $private->invoke(new A, NULL);
  16. $private->invokeArgs(new A, array(NULL));
  17. $privateStatic->invoke(NULL, NULL);
  18. $privateStatic->invokeArgs(NULL, array(NULL));
  19. $protected->invoke(new A, NULL);
  20. $protected->invokeArgs(new A, array(NULL));
  21. $protectedStatic->invoke(NULL, NULL);
  22. $protectedStatic->invokeArgs(NULL, array(NULL));
  23. $private->setAccessible(FALSE);
  24. $privateStatic->setAccessible(FALSE);
  25. $protected->setAccessible(FALSE);
  26. $protectedStatic->setAccessible(FALSE);
  27. $private->invoke(new A, NULL);
  28. $private->invokeArgs(new A, array(NULL));
  29. $privateStatic->invoke(NULL, NULL);
  30. $privateStatic->invokeArgs(NULL, array(NULL));
  31. $protected->invoke(new A, NULL);
  32. $protected->invokeArgs(new A, array(NULL));
  33. $protectedStatic->invoke(NULL, NULL);
  34. $protectedStatic->invokeArgs(NULL, array(NULL));
  35. ?>
  36. --EXPECT--
  37. A::aPrivate
  38. A::aPrivate
  39. A::aPrivateStatic
  40. A::aPrivateStatic
  41. A::aProtected
  42. A::aProtected
  43. A::aProtectedStatic
  44. A::aProtectedStatic
  45. A::aPrivate
  46. A::aPrivate
  47. A::aPrivateStatic
  48. A::aPrivateStatic
  49. A::aProtected
  50. A::aProtected
  51. A::aProtectedStatic
  52. A::aProtectedStatic