Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_getStaticPropertyValue_001.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ReflectionClass::getStaticPropertyValue()
! 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 "Retrieving static values from A:\n";
! 21: $rcA = new ReflectionClass('A');
! 22: var_dump($rcA->getStaticPropertyValue("privateOverridden", "default value"));
! 23: var_dump($rcA->getStaticPropertyValue("\0A\0privateOverridden"));
! 24: var_dump($rcA->getStaticPropertyValue("protectedOverridden", "default value"));
! 25: var_dump($rcA->getStaticPropertyValue("\0*\0protectedOverridden"));
! 26: var_dump($rcA->getStaticPropertyValue("publicOverridden"));
! 27:
! 28: echo "\nRetrieving static values from B:\n";
! 29: $rcB = new ReflectionClass('B');
! 30: var_dump($rcB->getStaticPropertyValue("\0A\0privateOverridden"));
! 31: var_dump($rcB->getStaticPropertyValue("\0B\0privateOverridden"));
! 32: var_dump($rcB->getStaticPropertyValue("\0*\0protectedOverridden"));
! 33: var_dump($rcB->getStaticPropertyValue("publicOverridden"));
! 34:
! 35: echo "\nRetrieving non-existent values from A with no default value:\n";
! 36: try {
! 37: var_dump($rcA->getStaticPropertyValue("protectedOverridden"));
! 38: echo "you should not see this";
! 39: } catch (Exception $e) {
! 40: echo $e->getMessage() . "\n";
! 41: }
! 42:
! 43: try {
! 44: var_dump($rcA->getStaticPropertyValue("privateOverridden"));
! 45: echo "you should not see this";
! 46: } catch (Exception $e) {
! 47: echo $e->getMessage() . "\n";
! 48: }
! 49:
! 50: ?>
! 51: --EXPECTF--
! 52: Retrieving static values from A:
! 53: string(13) "default value"
! 54: string(16) "original private"
! 55: string(13) "default value"
! 56: string(18) "original protected"
! 57: string(15) "original public"
! 58:
! 59: Retrieving static values from B:
! 60: string(16) "original private"
! 61: string(15) "changed private"
! 62: string(17) "changed protected"
! 63: string(14) "changed public"
! 64:
! 65: Retrieving non-existent values from A with no default value:
! 66: Class A does not have a property named protectedOverridden
! 67: Class A does not have a property named privateOverridden
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>