1--TEST--
2Test semi-reserved words as static class properties
3--FILE--
4<?php
5
6class Obj
7{
8    static $empty = 'empty';
9    static $callable = 'callable';
10    static $class = 'class';
11    static $trait = 'trait';
12    static $extends = 'extends';
13    static $implements = 'implements';
14    static $static = 'static';
15    static $abstract = 'abstract';
16    static $final = 'final';
17    static $public = 'public';
18    static $protected = 'protected';
19    static $private = 'private';
20    static $const = 'const';
21    static $enddeclare = 'enddeclare';
22    static $endfor = 'endfor';
23    static $endforeach = 'endforeach';
24    static $endif = 'endif';
25    static $endwhile = 'endwhile';
26    static $and = 'and';
27    static $global = 'global';
28    static $goto = 'goto';
29    static $instanceof = 'instanceof';
30    static $insteadof = 'insteadof';
31    static $interface = 'interface';
32    static $namespace = 'namespace';
33    static $new = 'new';
34    static $or = 'or';
35    static $xor = 'xor';
36    static $try = 'try';
37    static $use = 'use';
38    static $var = 'var';
39    static $exit = 'exit';
40    static $list = 'list';
41    static $clone = 'clone';
42    static $include = 'include';
43    static $include_once = 'include_once';
44    static $throw = 'throw';
45    static $array = 'array';
46    static $print = 'print';
47    static $echo = 'echo';
48    static $require = 'require';
49    static $require_once = 'require_once';
50    static $return = 'return';
51    static $else = 'else';
52    static $elseif = 'elseif';
53    static $default = 'default';
54    static $break = 'break';
55    static $continue = 'continue';
56    static $switch = 'switch';
57    static $yield = 'yield';
58    static $function = 'function';
59    static $fn = 'fn';
60    static $if = 'if';
61    static $endswitch = 'endswitch';
62    static $finally = 'finally';
63    static $for = 'for';
64    static $foreach = 'foreach';
65    static $declare = 'declare';
66    static $case = 'case';
67    static $do = 'do';
68    static $while = 'while';
69    static $as = 'as';
70    static $catch = 'catch';
71    static $die = 'die';
72    static $self = 'self';
73    static $parent = 'parent';
74    static $isset = 'isset';
75    static $unset = 'unset';
76    static $__CLASS__ = '__CLASS__';
77    static $__TRAIT__ = '__TRAIT__';
78    static $__FUNCTION__ = '__FUNCTION__';
79    static $__METHOD__ = '__METHOD__';
80    static $__LINE__ = '__LINE__';
81    static $__FILE__ = '__FILE__';
82    static $__DIR__ = '__DIR__';
83    static $__NAMESPACE__ = '__NAMESPACE__';
84    static $__halt_compiler = '__halt_compiler';
85}
86
87echo Obj::$empty, PHP_EOL;
88echo Obj::$callable, PHP_EOL;
89echo Obj::$class, PHP_EOL;
90echo Obj::$trait, PHP_EOL;
91echo Obj::$extends, PHP_EOL;
92echo Obj::$implements, PHP_EOL;
93echo Obj::$static, PHP_EOL;
94echo Obj::$abstract, PHP_EOL;
95echo Obj::$final, PHP_EOL;
96echo Obj::$public, PHP_EOL;
97echo Obj::$protected, PHP_EOL;
98echo Obj::$private, PHP_EOL;
99echo Obj::$const, PHP_EOL;
100echo Obj::$enddeclare, PHP_EOL;
101echo Obj::$endfor, PHP_EOL;
102echo Obj::$endforeach, PHP_EOL;
103echo Obj::$endif, PHP_EOL;
104echo Obj::$endwhile, PHP_EOL;
105echo Obj::$and, PHP_EOL;
106echo Obj::$global, PHP_EOL;
107echo Obj::$goto, PHP_EOL;
108echo Obj::$instanceof, PHP_EOL;
109echo Obj::$insteadof, PHP_EOL;
110echo Obj::$interface, PHP_EOL;
111echo Obj::$namespace, PHP_EOL;
112echo Obj::$new, PHP_EOL;
113echo Obj::$or, PHP_EOL;
114echo Obj::$xor, PHP_EOL;
115echo Obj::$try, PHP_EOL;
116echo Obj::$use, PHP_EOL;
117echo Obj::$var, PHP_EOL;
118echo Obj::$exit, PHP_EOL;
119echo Obj::$list, PHP_EOL;
120echo Obj::$clone, PHP_EOL;
121echo Obj::$include, PHP_EOL;
122echo Obj::$include_once, PHP_EOL;
123echo Obj::$throw, PHP_EOL;
124echo Obj::$array, PHP_EOL;
125echo Obj::$print, PHP_EOL;
126echo Obj::$echo, PHP_EOL;
127echo Obj::$require, PHP_EOL;
128echo Obj::$require_once, PHP_EOL;
129echo Obj::$return, PHP_EOL;
130echo Obj::$else, PHP_EOL;
131echo Obj::$elseif, PHP_EOL;
132echo Obj::$default, PHP_EOL;
133echo Obj::$break, PHP_EOL;
134echo Obj::$continue, PHP_EOL;
135echo Obj::$switch, PHP_EOL;
136echo Obj::$yield, PHP_EOL;
137echo Obj::$function, PHP_EOL;
138echo Obj::$fn, PHP_EOL;
139echo Obj::$if, PHP_EOL;
140echo Obj::$endswitch, PHP_EOL;
141echo Obj::$finally, PHP_EOL;
142echo Obj::$for, PHP_EOL;
143echo Obj::$foreach, PHP_EOL;
144echo Obj::$declare, PHP_EOL;
145echo Obj::$case, PHP_EOL;
146echo Obj::$do, PHP_EOL;
147echo Obj::$while, PHP_EOL;
148echo Obj::$as, PHP_EOL;
149echo Obj::$catch, PHP_EOL;
150echo Obj::$die, PHP_EOL;
151echo Obj::$self, PHP_EOL;
152echo Obj::$parent, PHP_EOL;
153echo Obj::$isset, PHP_EOL;
154echo Obj::$unset, PHP_EOL;
155echo Obj::$__CLASS__, PHP_EOL;
156echo Obj::$__TRAIT__, PHP_EOL;
157echo Obj::$__FUNCTION__, PHP_EOL;
158echo Obj::$__METHOD__, PHP_EOL;
159echo Obj::$__LINE__, PHP_EOL;
160echo Obj::$__FILE__, PHP_EOL;
161echo Obj::$__DIR__, PHP_EOL;
162echo Obj::$__NAMESPACE__, PHP_EOL;
163echo Obj::$__halt_compiler, PHP_EOL;
164
165echo "\nDone\n";
166--EXPECT--
167empty
168callable
169class
170trait
171extends
172implements
173static
174abstract
175final
176public
177protected
178private
179const
180enddeclare
181endfor
182endforeach
183endif
184endwhile
185and
186global
187goto
188instanceof
189insteadof
190interface
191namespace
192new
193or
194xor
195try
196use
197var
198exit
199list
200clone
201include
202include_once
203throw
204array
205print
206echo
207require
208require_once
209return
210else
211elseif
212default
213break
214continue
215switch
216yield
217function
218fn
219if
220endswitch
221finally
222for
223foreach
224declare
225case
226do
227while
228as
229catch
230die
231self
232parent
233isset
234unset
235__CLASS__
236__TRAIT__
237__FUNCTION__
238__METHOD__
239__LINE__
240__FILE__
241__DIR__
242__NAMESPACE__
243__halt_compiler
244
245Done
246