1 Valid usages of reserved keywords as identifiers
9 static function list() {}
10 static function protected() {}
15 const TRAIT = 3, FINAL = 4;
17 const __CLASS__ = 1, __TRAIT__ = 2, __FUNCTION__ = 3, __METHOD__ = 4, __LINE__ = 5,
18 __FILE__ = 6, __DIR__ = 7, __NAMESPACE__ = 8;
19 // __halt_compiler does not work
37 TraitA::catch insteadof namespace\TraitB;
38 TraitA::list as foreach;
39 TraitB::throw as protected public;
40 TraitB::self as protected;
43 namespace\TraitC::exit as byebye;
90 flags: MODIFIER_STATIC (8)
102 flags: MODIFIER_STATIC (8)
114 flags: MODIFIER_PUBLIC (1)
116 0: Stmt_PropertyProperty(
117 name: VarLikeIdentifier(
125 flags: MODIFIER_PUBLIC (1)
127 0: Stmt_PropertyProperty(
128 name: VarLikeIdentifier(
142 value: Scalar_LNumber(
150 value: Scalar_LNumber(
163 value: Scalar_LNumber(
171 value: Scalar_LNumber(
179 value: Scalar_LNumber(
187 value: Scalar_LNumber(
195 value: Scalar_LNumber(
203 value: Scalar_LNumber(
211 value: Scalar_LNumber(
219 value: Scalar_LNumber(
244 expr: Expr_MethodCall(
256 expr: Expr_MethodCall(
268 expr: Expr_StaticCall(
282 expr: Expr_StaticCall(
296 expr: Expr_PropertyFetch(
306 expr: Expr_PropertyFetch(
316 expr: Expr_ClassConstFetch(
328 expr: Expr_ClassConstFetch(
362 0: Stmt_TraitUseAdaptation_Precedence(
379 1: Stmt_TraitUseAdaptation_Alias(
393 2: Stmt_TraitUseAdaptation_Alias(
402 newModifier: MODIFIER_PROTECTED (2)
407 3: Stmt_TraitUseAdaptation_Alias(
416 newModifier: MODIFIER_PROTECTED (2)
419 4: Stmt_TraitUseAdaptation_Alias(
429 5: Stmt_TraitUseAdaptation_Alias(
430 trait: Name_FullyQualified(
443 6: Stmt_TraitUseAdaptation_Alias(
444 trait: Name_Relative(
457 7: Stmt_TraitUseAdaptation_Precedence(
467 1: /** doc comment */