Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ReflectionClass::setStaticPropertyValue()
! 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:
! 14: class B extends A {
! 15: static private $privateOverridden = "changed private";
! 16: static protected $protectedOverridden = "changed protected";
! 17: static public $publicOverridden = "changed public";
! 18: }
! 19:
! 20: echo "Set static values in A:\n";
! 21: $rcA = new ReflectionClass('A');
! 22: $rcA->setStaticPropertyValue("\0A\0privateOverridden", "new value 1");
! 23: $rcA->setStaticPropertyValue("\0*\0protectedOverridden", "new value 2");
! 24: $rcA->setStaticPropertyValue("publicOverridden", "new value 3");
! 25: print_r($rcA->getStaticProperties());
! 26:
! 27: echo "\nSet static values in B:\n";
! 28: $rcB = new ReflectionClass('B');
! 29: $rcB->setStaticPropertyValue("\0A\0privateOverridden", "new value 4");
! 30: $rcB->setStaticPropertyValue("\0B\0privateOverridden", "new value 5");
! 31: $rcB->setStaticPropertyValue("\0*\0protectedOverridden", "new value 6");
! 32: $rcB->setStaticPropertyValue("publicOverridden", "new value 7");
! 33: print_r($rcA->getStaticProperties());
! 34: print_r($rcB->getStaticProperties());
! 35:
! 36: echo "\nSet non-existent values from A with no default value:\n";
! 37: try {
! 38: var_dump($rcA->setStaticPropertyValue("protectedOverridden", "new value 8"));
! 39: echo "you should not see this";
! 40: } catch (Exception $e) {
! 41: echo $e->getMessage() . "\n";
! 42: }
! 43:
! 44: try {
! 45: var_dump($rcA->setStaticPropertyValue("privateOverridden", "new value 9"));
! 46: echo "you should not see this";
! 47: } catch (Exception $e) {
! 48: echo $e->getMessage() . "\n";
! 49: }
! 50:
! 51: ?>
! 52: --EXPECTF--
! 53: Set static values in A:
! 54: Array
! 55: (
! 56: [privateOverridden] => new value 1
! 57: [protectedOverridden] => new value 2
! 58: [publicOverridden] => new value 3
! 59: )
! 60:
! 61: Set static values in B:
! 62: Array
! 63: (
! 64: [privateOverridden] => new value 4
! 65: [protectedOverridden] => new value 2
! 66: [publicOverridden] => new value 3
! 67: )
! 68: Array
! 69: (
! 70: [privateOverridden] => new value 5
! 71: [protectedOverridden] => new value 6
! 72: [publicOverridden] => new value 7
! 73: )
! 74:
! 75: Set non-existent values from A with no default value:
! 76: Class A does not have a property named protectedOverridden
! 77: Class A does not have a property named privateOverridden
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>