objectAccess.test 4.1 KB

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