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>