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