Annotation of embedaddon/php/ext/reflection/tests/ReflectionProperty_setAccessible.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test ReflectionProperty::setAccessible().
! 3: --FILE--
! 4: <?php
! 5: class A {
! 6: protected $protected = 'a';
! 7: protected static $protectedStatic = 'b';
! 8: private $private = 'c';
! 9: private static $privateStatic = 'd';
! 10: }
! 11:
! 12: class B extends A {}
! 13:
! 14: $a = new A;
! 15: $protected = new ReflectionProperty($a, 'protected');
! 16: $protectedStatic = new ReflectionProperty('A', 'protectedStatic');
! 17: $private = new ReflectionProperty($a, 'private');
! 18: $privateStatic = new ReflectionProperty('A', 'privateStatic');
! 19:
! 20: try {
! 21: var_dump($protected->getValue($a));
! 22: }
! 23:
! 24: catch (ReflectionException $e) {
! 25: var_dump($e->getMessage());
! 26: }
! 27:
! 28: try {
! 29: var_dump($protectedStatic->getValue());
! 30: }
! 31:
! 32: catch (ReflectionException $e) {
! 33: var_dump($e->getMessage());
! 34: }
! 35:
! 36: try {
! 37: var_dump($private->getValue($a));
! 38: }
! 39:
! 40: catch (ReflectionException $e) {
! 41: var_dump($e->getMessage());
! 42: }
! 43:
! 44: try {
! 45: var_dump($privateStatic->getValue());
! 46: }
! 47:
! 48: catch (ReflectionException $e) {
! 49: var_dump($e->getMessage());
! 50: }
! 51:
! 52: $protected->setAccessible(TRUE);
! 53: $protectedStatic->setAccessible(TRUE);
! 54: $private->setAccessible(TRUE);
! 55: $privateStatic->setAccessible(TRUE);
! 56:
! 57: var_dump($protected->getValue($a));
! 58: var_dump($protectedStatic->getValue());
! 59: var_dump($private->getValue($a));
! 60: var_dump($privateStatic->getValue());
! 61:
! 62: $protected->setValue($a, 'e');
! 63: $protectedStatic->setValue('f');
! 64: $private->setValue($a, 'g');
! 65: $privateStatic->setValue('h');
! 66:
! 67: var_dump($protected->getValue($a));
! 68: var_dump($protectedStatic->getValue());
! 69: var_dump($private->getValue($a));
! 70: var_dump($privateStatic->getValue());
! 71:
! 72: $a = new A;
! 73: $b = new B;
! 74: $protected = new ReflectionProperty($b, 'protected');
! 75: $protectedStatic = new ReflectionProperty('B', 'protectedStatic');
! 76: $private = new ReflectionProperty($a, 'private');
! 77:
! 78: try {
! 79: var_dump($protected->getValue($b));
! 80: }
! 81:
! 82: catch (ReflectionException $e) {
! 83: var_dump($e->getMessage());
! 84: }
! 85:
! 86: try {
! 87: var_dump($protectedStatic->getValue());
! 88: }
! 89:
! 90: catch (ReflectionException $e) {
! 91: var_dump($e->getMessage());
! 92: }
! 93:
! 94: try {
! 95: var_dump($private->getValue($b));
! 96: }
! 97:
! 98: catch (ReflectionException $e) {
! 99: var_dump($e->getMessage());
! 100: }
! 101:
! 102: $protected->setAccessible(TRUE);
! 103: $protectedStatic->setAccessible(TRUE);
! 104: $private->setAccessible(TRUE);
! 105:
! 106: var_dump($protected->getValue($b));
! 107: var_dump($protectedStatic->getValue());
! 108: var_dump($private->getValue($b));
! 109:
! 110: $protected->setValue($b, 'e');
! 111: $protectedStatic->setValue('f');
! 112: $private->setValue($b, 'g');
! 113:
! 114: var_dump($protected->getValue($b));
! 115: var_dump($protectedStatic->getValue());
! 116: var_dump($private->getValue($b));
! 117: ?>
! 118: --EXPECT--
! 119: string(44) "Cannot access non-public member A::protected"
! 120: string(50) "Cannot access non-public member A::protectedStatic"
! 121: string(42) "Cannot access non-public member A::private"
! 122: string(48) "Cannot access non-public member A::privateStatic"
! 123: string(1) "a"
! 124: string(1) "b"
! 125: string(1) "c"
! 126: string(1) "d"
! 127: string(1) "e"
! 128: string(1) "f"
! 129: string(1) "g"
! 130: string(1) "h"
! 131: string(44) "Cannot access non-public member B::protected"
! 132: string(50) "Cannot access non-public member B::protectedStatic"
! 133: string(42) "Cannot access non-public member A::private"
! 134: string(1) "a"
! 135: string(1) "f"
! 136: string(1) "c"
! 137: string(1) "e"
! 138: string(1) "f"
! 139: string(1) "g"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>