staticCall.test 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. Static calls
  2. -----
  3. <?php
  4. // method name variations
  5. A::b();
  6. A::{'b'}();
  7. A::$b();
  8. A::$b['c']();
  9. A::$b['c']['d']();
  10. // array dereferencing
  11. A::b()['c'];
  12. // class name variations
  13. static::b();
  14. $a::b();
  15. ${'a'}::b();
  16. $a['b']::c();
  17. -----
  18. !!php5
  19. array(
  20. 0: Stmt_Expression(
  21. expr: Expr_StaticCall(
  22. class: Name(
  23. parts: array(
  24. 0: A
  25. )
  26. comments: array(
  27. 0: // method name variations
  28. )
  29. )
  30. name: Identifier(
  31. name: b
  32. )
  33. args: array(
  34. )
  35. comments: array(
  36. 0: // method name variations
  37. )
  38. )
  39. comments: array(
  40. 0: // method name variations
  41. )
  42. )
  43. 1: Stmt_Expression(
  44. expr: Expr_StaticCall(
  45. class: Name(
  46. parts: array(
  47. 0: A
  48. )
  49. )
  50. name: Scalar_String(
  51. value: b
  52. )
  53. args: array(
  54. )
  55. )
  56. )
  57. 2: Stmt_Expression(
  58. expr: Expr_StaticCall(
  59. class: Name(
  60. parts: array(
  61. 0: A
  62. )
  63. )
  64. name: Expr_Variable(
  65. name: b
  66. )
  67. args: array(
  68. )
  69. )
  70. )
  71. 3: Stmt_Expression(
  72. expr: Expr_StaticCall(
  73. class: Name(
  74. parts: array(
  75. 0: A
  76. )
  77. )
  78. name: Expr_ArrayDimFetch(
  79. var: Expr_Variable(
  80. name: b
  81. )
  82. dim: Scalar_String(
  83. value: c
  84. )
  85. )
  86. args: array(
  87. )
  88. )
  89. )
  90. 4: Stmt_Expression(
  91. expr: Expr_StaticCall(
  92. class: Name(
  93. parts: array(
  94. 0: A
  95. )
  96. )
  97. name: Expr_ArrayDimFetch(
  98. var: Expr_ArrayDimFetch(
  99. var: Expr_Variable(
  100. name: b
  101. )
  102. dim: Scalar_String(
  103. value: c
  104. )
  105. )
  106. dim: Scalar_String(
  107. value: d
  108. )
  109. )
  110. args: array(
  111. )
  112. )
  113. )
  114. 5: Stmt_Expression(
  115. expr: Expr_ArrayDimFetch(
  116. var: Expr_StaticCall(
  117. class: Name(
  118. parts: array(
  119. 0: A
  120. )
  121. comments: array(
  122. 0: // array dereferencing
  123. )
  124. )
  125. name: Identifier(
  126. name: b
  127. )
  128. args: array(
  129. )
  130. comments: array(
  131. 0: // array dereferencing
  132. )
  133. )
  134. dim: Scalar_String(
  135. value: c
  136. )
  137. comments: array(
  138. 0: // array dereferencing
  139. )
  140. )
  141. comments: array(
  142. 0: // array dereferencing
  143. )
  144. )
  145. 6: Stmt_Expression(
  146. expr: Expr_StaticCall(
  147. class: Name(
  148. parts: array(
  149. 0: static
  150. )
  151. comments: array(
  152. 0: // class name variations
  153. )
  154. )
  155. name: Identifier(
  156. name: b
  157. )
  158. args: array(
  159. )
  160. comments: array(
  161. 0: // class name variations
  162. )
  163. )
  164. comments: array(
  165. 0: // class name variations
  166. )
  167. )
  168. 7: Stmt_Expression(
  169. expr: Expr_StaticCall(
  170. class: Expr_Variable(
  171. name: a
  172. )
  173. name: Identifier(
  174. name: b
  175. )
  176. args: array(
  177. )
  178. )
  179. )
  180. 8: Stmt_Expression(
  181. expr: Expr_StaticCall(
  182. class: Expr_Variable(
  183. name: Scalar_String(
  184. value: a
  185. )
  186. )
  187. name: Identifier(
  188. name: b
  189. )
  190. args: array(
  191. )
  192. )
  193. )
  194. 9: Stmt_Expression(
  195. expr: Expr_StaticCall(
  196. class: Expr_ArrayDimFetch(
  197. var: Expr_Variable(
  198. name: a
  199. )
  200. dim: Scalar_String(
  201. value: b
  202. )
  203. )
  204. name: Identifier(
  205. name: c
  206. )
  207. args: array(
  208. )
  209. )
  210. )
  211. )