Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_getStaticPropertyValue_001.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: ReflectionClass::getStaticPropertyValue()
3: --CREDITS--
4: Robin Fernandes <robinf@php.net>
5: Steve Seear <stevseea@php.net>
1.1.1.2 ! misho 6: --SKIPIF--
! 7: <?php if (version_compare(zend_version(), '2.4.0', '>=')) die('skip ZendEngine 2.3 or below needed'); ?>
1.1 misho 8: --FILE--
9: <?php
10: class A {
11: static private $privateOverridden = "original private";
12: static protected $protectedOverridden = "original protected";
13: static public $publicOverridden = "original public";
14: }
15:
16: class B extends A {
17: static private $privateOverridden = "changed private";
18: static protected $protectedOverridden = "changed protected";
19: static public $publicOverridden = "changed public";
20: }
21:
22: echo "Retrieving static values from A:\n";
23: $rcA = new ReflectionClass('A');
24: var_dump($rcA->getStaticPropertyValue("privateOverridden", "default value"));
25: var_dump($rcA->getStaticPropertyValue("\0A\0privateOverridden"));
26: var_dump($rcA->getStaticPropertyValue("protectedOverridden", "default value"));
27: var_dump($rcA->getStaticPropertyValue("\0*\0protectedOverridden"));
28: var_dump($rcA->getStaticPropertyValue("publicOverridden"));
29:
30: echo "\nRetrieving static values from B:\n";
31: $rcB = new ReflectionClass('B');
32: var_dump($rcB->getStaticPropertyValue("\0A\0privateOverridden"));
33: var_dump($rcB->getStaticPropertyValue("\0B\0privateOverridden"));
34: var_dump($rcB->getStaticPropertyValue("\0*\0protectedOverridden"));
35: var_dump($rcB->getStaticPropertyValue("publicOverridden"));
36:
37: echo "\nRetrieving non-existent values from A with no default value:\n";
38: try {
39: var_dump($rcA->getStaticPropertyValue("protectedOverridden"));
40: echo "you should not see this";
41: } catch (Exception $e) {
42: echo $e->getMessage() . "\n";
43: }
44:
45: try {
46: var_dump($rcA->getStaticPropertyValue("privateOverridden"));
47: echo "you should not see this";
48: } catch (Exception $e) {
49: echo $e->getMessage() . "\n";
50: }
51:
52: ?>
53: --EXPECTF--
54: Retrieving static values from A:
55: string(13) "default value"
56: string(16) "original private"
57: string(13) "default value"
58: string(18) "original protected"
59: string(15) "original public"
60:
61: Retrieving static values from B:
62: string(16) "original private"
63: string(15) "changed private"
64: string(17) "changed protected"
65: string(14) "changed public"
66:
67: Retrieving non-existent values from A with no default value:
68: Class A does not have a property named protectedOverridden
69: Class A does not have a property named privateOverridden
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>