Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_getStaticPropertyValue_001.phpt, revision 1.1.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>