staticCall.test 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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. array(
  19. 0: Stmt_Expression(
  20. expr: Expr_StaticCall(
  21. class: Name(
  22. name: A
  23. )
  24. name: Identifier(
  25. name: b
  26. )
  27. args: array(
  28. )
  29. )
  30. comments: array(
  31. 0: // method name variations
  32. )
  33. )
  34. 1: Stmt_Expression(
  35. expr: Expr_StaticCall(
  36. class: Name(
  37. name: A
  38. )
  39. name: Scalar_String(
  40. value: b
  41. )
  42. args: array(
  43. )
  44. )
  45. )
  46. 2: Stmt_Expression(
  47. expr: Expr_StaticCall(
  48. class: Name(
  49. name: A
  50. )
  51. name: Expr_Variable(
  52. name: b
  53. )
  54. args: array(
  55. )
  56. )
  57. )
  58. 3: Stmt_Expression(
  59. expr: Expr_FuncCall(
  60. name: Expr_ArrayDimFetch(
  61. var: Expr_StaticPropertyFetch(
  62. class: Name(
  63. name: A
  64. )
  65. name: VarLikeIdentifier(
  66. name: b
  67. )
  68. )
  69. dim: Scalar_String(
  70. value: c
  71. )
  72. )
  73. args: array(
  74. )
  75. )
  76. )
  77. 4: Stmt_Expression(
  78. expr: Expr_FuncCall(
  79. name: Expr_ArrayDimFetch(
  80. var: Expr_ArrayDimFetch(
  81. var: Expr_StaticPropertyFetch(
  82. class: Name(
  83. name: A
  84. )
  85. name: VarLikeIdentifier(
  86. name: b
  87. )
  88. )
  89. dim: Scalar_String(
  90. value: c
  91. )
  92. )
  93. dim: Scalar_String(
  94. value: d
  95. )
  96. )
  97. args: array(
  98. )
  99. )
  100. )
  101. 5: Stmt_Expression(
  102. expr: Expr_ArrayDimFetch(
  103. var: Expr_StaticCall(
  104. class: Name(
  105. name: A
  106. )
  107. name: Identifier(
  108. name: b
  109. )
  110. args: array(
  111. )
  112. )
  113. dim: Scalar_String(
  114. value: c
  115. )
  116. )
  117. comments: array(
  118. 0: // array dereferencing
  119. )
  120. )
  121. 6: Stmt_Expression(
  122. expr: Expr_StaticCall(
  123. class: Name(
  124. name: static
  125. )
  126. name: Identifier(
  127. name: b
  128. )
  129. args: array(
  130. )
  131. )
  132. comments: array(
  133. 0: // class name variations
  134. )
  135. )
  136. 7: Stmt_Expression(
  137. expr: Expr_StaticCall(
  138. class: Expr_Variable(
  139. name: a
  140. )
  141. name: Identifier(
  142. name: b
  143. )
  144. args: array(
  145. )
  146. )
  147. )
  148. 8: Stmt_Expression(
  149. expr: Expr_StaticCall(
  150. class: Expr_Variable(
  151. name: Scalar_String(
  152. value: a
  153. )
  154. )
  155. name: Identifier(
  156. name: b
  157. )
  158. args: array(
  159. )
  160. )
  161. )
  162. 9: Stmt_Expression(
  163. expr: Expr_StaticCall(
  164. class: Expr_ArrayDimFetch(
  165. var: Expr_Variable(
  166. name: a
  167. )
  168. dim: Scalar_String(
  169. value: b
  170. )
  171. )
  172. name: Identifier(
  173. name: c
  174. )
  175. args: array(
  176. )
  177. )
  178. )
  179. )