1--TEST--
2ReflectionClass::getProperty()
3--CREDITS--
4Robin Fernandes <robinf@php.net>
5Steve Seear <stevseea@php.net>
6--FILE--
7<?php
8class pubf {
9	public $a;
10	static public $s;
11}
12class subpubf extends pubf {
13}
14
15class protf {
16	protected $a;
17	static protected $s;
18}
19class subprotf extends protf {
20}
21
22class privf {
23	private $a;
24	static protected $s;
25}
26class subprivf extends privf  {
27}
28
29$classes = array("pubf", "subpubf", "protf", "subprotf",
30				 "privf", "subprivf");
31foreach($classes as $class) {
32	echo "Reflecting on class $class: \n";
33	$rc = new ReflectionClass($class);
34	try {
35		echo "  --> Check for s: ";
36		var_dump($rc->getProperty("s"));
37	} catch (exception $e) {
38		echo $e->getMessage() . "\n";
39	}
40	try {
41		echo "  --> Check for a: ";
42		var_dump($rc->getProperty("a"));
43	} catch (exception $e) {
44		echo $e->getMessage() . "\n";
45	}
46	try {
47		echo "  --> Check for A: ";
48		var_dump($rc->getProperty("A"));
49	} catch (exception $e) {
50		echo $e->getMessage() . "\n";
51	}
52	try {
53		echo "  --> Check for doesntExist: ";
54		var_dump($rc->getProperty("doesntExist"));
55	} catch (exception $e) {
56		echo $e->getMessage() . "\n";
57	}
58
59}
60?>
61--EXPECTF--
62Reflecting on class pubf:
63  --> Check for s: object(ReflectionProperty)#%d (2) {
64  [%u|b%"name"]=>
65  %unicode|string%(1) "s"
66  [%u|b%"class"]=>
67  %unicode|string%(4) "pubf"
68}
69  --> Check for a: object(ReflectionProperty)#%d (2) {
70  [%u|b%"name"]=>
71  %unicode|string%(1) "a"
72  [%u|b%"class"]=>
73  %unicode|string%(4) "pubf"
74}
75  --> Check for A: Property A does not exist
76  --> Check for doesntExist: Property doesntExist does not exist
77Reflecting on class subpubf:
78  --> Check for s: object(ReflectionProperty)#%d (2) {
79  [%u|b%"name"]=>
80  %unicode|string%(1) "s"
81  [%u|b%"class"]=>
82  %unicode|string%(4) "pubf"
83}
84  --> Check for a: object(ReflectionProperty)#%d (2) {
85  [%u|b%"name"]=>
86  %unicode|string%(1) "a"
87  [%u|b%"class"]=>
88  %unicode|string%(4) "pubf"
89}
90  --> Check for A: Property A does not exist
91  --> Check for doesntExist: Property doesntExist does not exist
92Reflecting on class protf:
93  --> Check for s: object(ReflectionProperty)#%d (2) {
94  [%u|b%"name"]=>
95  %unicode|string%(1) "s"
96  [%u|b%"class"]=>
97  %unicode|string%(5) "protf"
98}
99  --> Check for a: object(ReflectionProperty)#%d (2) {
100  [%u|b%"name"]=>
101  %unicode|string%(1) "a"
102  [%u|b%"class"]=>
103  %unicode|string%(5) "protf"
104}
105  --> Check for A: Property A does not exist
106  --> Check for doesntExist: Property doesntExist does not exist
107Reflecting on class subprotf:
108  --> Check for s: object(ReflectionProperty)#%d (2) {
109  [%u|b%"name"]=>
110  %unicode|string%(1) "s"
111  [%u|b%"class"]=>
112  %unicode|string%(5) "protf"
113}
114  --> Check for a: object(ReflectionProperty)#%d (2) {
115  [%u|b%"name"]=>
116  %unicode|string%(1) "a"
117  [%u|b%"class"]=>
118  %unicode|string%(5) "protf"
119}
120  --> Check for A: Property A does not exist
121  --> Check for doesntExist: Property doesntExist does not exist
122Reflecting on class privf:
123  --> Check for s: object(ReflectionProperty)#%d (2) {
124  [%u|b%"name"]=>
125  %unicode|string%(1) "s"
126  [%u|b%"class"]=>
127  %unicode|string%(5) "privf"
128}
129  --> Check for a: object(ReflectionProperty)#%d (2) {
130  [%u|b%"name"]=>
131  %unicode|string%(1) "a"
132  [%u|b%"class"]=>
133  %unicode|string%(5) "privf"
134}
135  --> Check for A: Property A does not exist
136  --> Check for doesntExist: Property doesntExist does not exist
137Reflecting on class subprivf:
138  --> Check for s: object(ReflectionProperty)#%d (2) {
139  [%u|b%"name"]=>
140  %unicode|string%(1) "s"
141  [%u|b%"class"]=>
142  %unicode|string%(5) "privf"
143}
144  --> Check for a: Property a does not exist
145  --> Check for A: Property A does not exist
146  --> Check for doesntExist: Property doesntExist does not exist
147