simple.test 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. Class declaration
  2. -----
  3. <?php
  4. class A extends B implements C, D {
  5. const A = 'B', C = 'D';
  6. public $a = 'b', $c = 'd';
  7. protected $e;
  8. private $f;
  9. public function a() {}
  10. public static function b($a) {}
  11. public final function c() : B {}
  12. protected function d() {}
  13. private function e() {}
  14. }
  15. -----
  16. array(
  17. 0: Stmt_Class(
  18. flags: 0
  19. name: Identifier(
  20. name: A
  21. )
  22. extends: Name(
  23. parts: array(
  24. 0: B
  25. )
  26. )
  27. implements: array(
  28. 0: Name(
  29. parts: array(
  30. 0: C
  31. )
  32. )
  33. 1: Name(
  34. parts: array(
  35. 0: D
  36. )
  37. )
  38. )
  39. stmts: array(
  40. 0: Stmt_ClassConst(
  41. flags: 0
  42. consts: array(
  43. 0: Const(
  44. name: Identifier(
  45. name: A
  46. )
  47. value: Scalar_String(
  48. value: B
  49. )
  50. )
  51. 1: Const(
  52. name: Identifier(
  53. name: C
  54. )
  55. value: Scalar_String(
  56. value: D
  57. )
  58. )
  59. )
  60. )
  61. 1: Stmt_Property(
  62. flags: MODIFIER_PUBLIC (1)
  63. type: null
  64. props: array(
  65. 0: Stmt_PropertyProperty(
  66. name: VarLikeIdentifier(
  67. name: a
  68. )
  69. default: Scalar_String(
  70. value: b
  71. )
  72. )
  73. 1: Stmt_PropertyProperty(
  74. name: VarLikeIdentifier(
  75. name: c
  76. )
  77. default: Scalar_String(
  78. value: d
  79. )
  80. )
  81. )
  82. )
  83. 2: Stmt_Property(
  84. flags: MODIFIER_PROTECTED (2)
  85. type: null
  86. props: array(
  87. 0: Stmt_PropertyProperty(
  88. name: VarLikeIdentifier(
  89. name: e
  90. )
  91. default: null
  92. )
  93. )
  94. )
  95. 3: Stmt_Property(
  96. flags: MODIFIER_PRIVATE (4)
  97. type: null
  98. props: array(
  99. 0: Stmt_PropertyProperty(
  100. name: VarLikeIdentifier(
  101. name: f
  102. )
  103. default: null
  104. )
  105. )
  106. )
  107. 4: Stmt_ClassMethod(
  108. flags: MODIFIER_PUBLIC (1)
  109. byRef: false
  110. name: Identifier(
  111. name: a
  112. )
  113. params: array(
  114. )
  115. returnType: null
  116. stmts: array(
  117. )
  118. )
  119. 5: Stmt_ClassMethod(
  120. flags: MODIFIER_PUBLIC | MODIFIER_STATIC (9)
  121. byRef: false
  122. name: Identifier(
  123. name: b
  124. )
  125. params: array(
  126. 0: Param(
  127. type: null
  128. byRef: false
  129. variadic: false
  130. var: Expr_Variable(
  131. name: a
  132. )
  133. default: null
  134. )
  135. )
  136. returnType: null
  137. stmts: array(
  138. )
  139. )
  140. 6: Stmt_ClassMethod(
  141. flags: MODIFIER_PUBLIC | MODIFIER_FINAL (33)
  142. byRef: false
  143. name: Identifier(
  144. name: c
  145. )
  146. params: array(
  147. )
  148. returnType: Name(
  149. parts: array(
  150. 0: B
  151. )
  152. )
  153. stmts: array(
  154. )
  155. )
  156. 7: Stmt_ClassMethod(
  157. flags: MODIFIER_PROTECTED (2)
  158. byRef: false
  159. name: Identifier(
  160. name: d
  161. )
  162. params: array(
  163. )
  164. returnType: null
  165. stmts: array(
  166. )
  167. )
  168. 8: Stmt_ClassMethod(
  169. flags: MODIFIER_PRIVATE (4)
  170. byRef: false
  171. name: Identifier(
  172. name: e
  173. )
  174. params: array(
  175. )
  176. returnType: null
  177. stmts: array(
  178. )
  179. )
  180. )
  181. )
  182. )