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