1--TEST-- 2Testing with comments around semi-reserved names (not intended to be legible) 3--FILE-- 4<?php 5 6trait TraitA 7{ 8 public static function list(){ echo __METHOD__, PHP_EOL; } 9 public static function /* comment */ catch(){ echo __METHOD__, PHP_EOL; } 10 private static function // comment 11 throw(){ echo __METHOD__, PHP_EOL; } 12 private static function 13 # comment 14 self(){ echo __METHOD__, PHP_EOL; } 15} 16 17trait TraitB 18{ 19 public static function exit(){ echo __METHOD__, PHP_EOL; } 20 protected static function try(){ echo __METHOD__, PHP_EOL; } 21} 22 23class Foo 24{ 25 use TraitA { 26 TraitA:: 27 // 28 /** doc comment */ 29 # 30 catch /* comment */ 31 // comment 32 # comment 33 insteadof TraitB; 34 35 TraitA::list as public /**/ foreach; 36 } 37 38 use TraitB { 39 try /*comment*/ as public attempt; 40 exit // comment 41 as/*comment*/die; // non qualified 42 \TraitB::exit as bye; // full qualified 43 namespace\TraitB::exit # 44 as byebye; // even more full qualified 45 TraitB 46 :: 47 /** */ 48 exit as farewell; // full qualified with weird spacing 49 } 50} 51 52Foo /**/ 53# 54// 55/** */ 56:: 57/**/ 58# 59// 60/** */ 61attempt(); 62 63echo PHP_EOL, "Done", PHP_EOL; 64--EXPECTF-- 65TraitB::try 66 67Done 68