objectAccess.test 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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'};
  16. -----
  17. array(
  18. 0: Stmt_Expression(
  19. expr: Expr_PropertyFetch(
  20. var: Expr_Variable(
  21. name: a
  22. )
  23. name: Identifier(
  24. name: b
  25. )
  26. )
  27. comments: array(
  28. 0: // property fetch variations
  29. )
  30. )
  31. 1: Stmt_Expression(
  32. expr: Expr_ArrayDimFetch(
  33. var: Expr_PropertyFetch(
  34. var: Expr_Variable(
  35. name: a
  36. )
  37. name: Identifier(
  38. name: b
  39. )
  40. )
  41. dim: Scalar_String(
  42. value: c
  43. )
  44. )
  45. )
  46. 2: Stmt_Expression(
  47. expr: Expr_ArrayDimFetch(
  48. var: Expr_PropertyFetch(
  49. var: Expr_Variable(
  50. name: a
  51. )
  52. name: Identifier(
  53. name: b
  54. )
  55. )
  56. dim: Scalar_String(
  57. value: c
  58. )
  59. )
  60. )
  61. 3: Stmt_Expression(
  62. expr: Expr_MethodCall(
  63. var: Expr_Variable(
  64. name: a
  65. )
  66. name: Identifier(
  67. name: b
  68. )
  69. args: array(
  70. )
  71. )
  72. comments: array(
  73. 0: // method call variations
  74. )
  75. )
  76. 4: Stmt_Expression(
  77. expr: Expr_MethodCall(
  78. var: Expr_Variable(
  79. name: a
  80. )
  81. name: Scalar_String(
  82. value: b
  83. )
  84. args: array(
  85. )
  86. )
  87. )
  88. 5: Stmt_Expression(
  89. expr: Expr_MethodCall(
  90. var: Expr_Variable(
  91. name: a
  92. )
  93. name: Expr_Variable(
  94. name: b
  95. )
  96. args: array(
  97. )
  98. )
  99. )
  100. 6: Stmt_Expression(
  101. expr: Expr_FuncCall(
  102. name: Expr_ArrayDimFetch(
  103. var: Expr_PropertyFetch(
  104. var: Expr_Variable(
  105. name: a
  106. )
  107. name: Expr_Variable(
  108. name: b
  109. )
  110. )
  111. dim: Scalar_String(
  112. value: c
  113. )
  114. )
  115. args: array(
  116. )
  117. )
  118. )
  119. 7: Stmt_Expression(
  120. expr: Expr_ArrayDimFetch(
  121. var: Expr_MethodCall(
  122. var: Expr_Variable(
  123. name: a
  124. )
  125. name: Identifier(
  126. name: b
  127. )
  128. args: array(
  129. )
  130. )
  131. dim: Scalar_String(
  132. value: c
  133. )
  134. )
  135. comments: array(
  136. 0: // array dereferencing
  137. )
  138. )
  139. 8: Stmt_Expression(
  140. expr: Expr_ArrayDimFetch(
  141. var: Expr_MethodCall(
  142. var: Expr_Variable(
  143. name: a
  144. )
  145. name: Identifier(
  146. name: b
  147. )
  148. args: array(
  149. )
  150. )
  151. dim: Scalar_String(
  152. value: c
  153. )
  154. )
  155. )
  156. )