123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- --TEST--
- Test ReflectionProperty::setAccessible().
- --FILE--
- <?php
- class A {
- protected $protected = 'a';
- protected static $protectedStatic = 'b';
- private $private = 'c';
- private static $privateStatic = 'd';
- }
- class B extends A {}
- $a = new A;
- $protected = new ReflectionProperty($a, 'protected');
- $protectedStatic = new ReflectionProperty('A', 'protectedStatic');
- $private = new ReflectionProperty($a, 'private');
- $privateStatic = new ReflectionProperty('A', 'privateStatic');
- try {
- var_dump($protected->getValue($a));
- }
- catch (ReflectionException $e) {
- var_dump($e->getMessage());
- }
- try {
- var_dump($protectedStatic->getValue());
- }
- catch (ReflectionException $e) {
- var_dump($e->getMessage());
- }
- try {
- var_dump($private->getValue($a));
- }
- catch (ReflectionException $e) {
- var_dump($e->getMessage());
- }
- try {
- var_dump($privateStatic->getValue());
- }
- catch (ReflectionException $e) {
- var_dump($e->getMessage());
- }
- $protected->setAccessible(TRUE);
- $protectedStatic->setAccessible(TRUE);
- $private->setAccessible(TRUE);
- $privateStatic->setAccessible(TRUE);
- var_dump($protected->getValue($a));
- var_dump($protectedStatic->getValue());
- var_dump($private->getValue($a));
- var_dump($privateStatic->getValue());
- $protected->setValue($a, 'e');
- $protectedStatic->setValue('f');
- $private->setValue($a, 'g');
- $privateStatic->setValue('h');
- var_dump($protected->getValue($a));
- var_dump($protectedStatic->getValue());
- var_dump($private->getValue($a));
- var_dump($privateStatic->getValue());
- $a = new A;
- $b = new B;
- $protected = new ReflectionProperty($b, 'protected');
- $protectedStatic = new ReflectionProperty('B', 'protectedStatic');
- $private = new ReflectionProperty($a, 'private');
- try {
- var_dump($protected->getValue($b));
- }
- catch (ReflectionException $e) {
- var_dump($e->getMessage());
- }
- try {
- var_dump($protectedStatic->getValue());
- }
- catch (ReflectionException $e) {
- var_dump($e->getMessage());
- }
- try {
- var_dump($private->getValue($b));
- }
- catch (ReflectionException $e) {
- var_dump($e->getMessage());
- }
- $protected->setAccessible(TRUE);
- $protectedStatic->setAccessible(TRUE);
- $private->setAccessible(TRUE);
- var_dump($protected->getValue($b));
- var_dump($protectedStatic->getValue());
- var_dump($private->getValue($b));
- $protected->setValue($b, 'e');
- $protectedStatic->setValue('f');
- $private->setValue($b, 'g');
- var_dump($protected->getValue($b));
- var_dump($protectedStatic->getValue());
- var_dump($private->getValue($b));
- ?>
- --EXPECT--
- string(44) "Cannot access non-public member A::protected"
- string(50) "Cannot access non-public member A::protectedStatic"
- string(42) "Cannot access non-public member A::private"
- string(48) "Cannot access non-public member A::privateStatic"
- string(1) "a"
- string(1) "b"
- string(1) "c"
- string(1) "d"
- string(1) "e"
- string(1) "f"
- string(1) "g"
- string(1) "h"
- string(44) "Cannot access non-public member B::protected"
- string(50) "Cannot access non-public member B::protectedStatic"
- string(42) "Cannot access non-public member A::private"
- string(1) "a"
- string(1) "f"
- string(1) "c"
- string(1) "e"
- string(1) "f"
- string(1) "g"
|