Annotation of embedaddon/php/ext/reflection/tests/ReflectionProperty_basic1.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test usage of ReflectionProperty methods __toString(), export(), getName(), isPublic(), isPrivate(), isProtected(), isStatic(), getValue() and setValue().
3: --FILE--
4: <?php
5:
6: function reflectProperty($class, $property) {
7: $propInfo = new ReflectionProperty($class, $property);
8: echo "**********************************\n";
9: echo "Reflecting on property $class::$property\n\n";
10: echo "__toString():\n";
11: var_dump($propInfo->__toString());
12: echo "export():\n";
13: var_dump(ReflectionProperty::export($class, $property, true));
14: echo "export():\n";
15: var_dump(ReflectionProperty::export($class, $property, false));
16: echo "getName():\n";
17: var_dump($propInfo->getName());
18: echo "isPublic():\n";
19: var_dump($propInfo->isPublic());
20: echo "isPrivate():\n";
21: var_dump($propInfo->isPrivate());
22: echo "isProtected():\n";
23: var_dump($propInfo->isProtected());
24: echo "isStatic():\n";
25: var_dump($propInfo->isStatic());
26: $instance = new $class();
27: if ($propInfo->isPublic()) {
28: echo "getValue():\n";
29: var_dump($propInfo->getValue($instance));
30: $propInfo->setValue($instance, "NewValue");
31: echo "getValue() after a setValue():\n";
32: var_dump($propInfo->getValue($instance));
33: }
34: echo "\n**********************************\n";
35: }
36:
37: class TestClass {
38: public $pub;
39: static public $stat = "static property";
40: protected $prot = 4;
41: private $priv = "keepOut";
42: }
43:
44: reflectProperty("TestClass", "pub");
45: reflectProperty("TestClass", "stat");
46: reflectProperty("TestClass", "prot");
47: reflectProperty("TestClass", "priv");
48:
49: ?>
50: --EXPECT--
51: **********************************
52: Reflecting on property TestClass::pub
53:
54: __toString():
55: string(35) "Property [ <default> public $pub ]
56: "
57: export():
58: string(35) "Property [ <default> public $pub ]
59: "
60: export():
61: Property [ <default> public $pub ]
62:
63: NULL
64: getName():
65: string(3) "pub"
66: isPublic():
67: bool(true)
68: isPrivate():
69: bool(false)
70: isProtected():
71: bool(false)
72: isStatic():
73: bool(false)
74: getValue():
75: NULL
76: getValue() after a setValue():
77: string(8) "NewValue"
78:
79: **********************************
80: **********************************
81: Reflecting on property TestClass::stat
82:
83: __toString():
84: string(33) "Property [ public static $stat ]
85: "
86: export():
87: string(33) "Property [ public static $stat ]
88: "
89: export():
90: Property [ public static $stat ]
91:
92: NULL
93: getName():
94: string(4) "stat"
95: isPublic():
96: bool(true)
97: isPrivate():
98: bool(false)
99: isProtected():
100: bool(false)
101: isStatic():
102: bool(true)
103: getValue():
104: string(15) "static property"
105: getValue() after a setValue():
106: string(8) "NewValue"
107:
108: **********************************
109: **********************************
110: Reflecting on property TestClass::prot
111:
112: __toString():
113: string(39) "Property [ <default> protected $prot ]
114: "
115: export():
116: string(39) "Property [ <default> protected $prot ]
117: "
118: export():
119: Property [ <default> protected $prot ]
120:
121: NULL
122: getName():
123: string(4) "prot"
124: isPublic():
125: bool(false)
126: isPrivate():
127: bool(false)
128: isProtected():
129: bool(true)
130: isStatic():
131: bool(false)
132:
133: **********************************
134: **********************************
135: Reflecting on property TestClass::priv
136:
137: __toString():
138: string(37) "Property [ <default> private $priv ]
139: "
140: export():
141: string(37) "Property [ <default> private $priv ]
142: "
143: export():
144: Property [ <default> private $priv ]
145:
146: NULL
147: getName():
148: string(4) "priv"
149: isPublic():
150: bool(false)
151: isPrivate():
152: bool(true)
153: isProtected():
154: bool(false)
155: isStatic():
156: bool(false)
157:
158: **********************************
159:
160:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>