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