constantDeref.test 4.8 KB

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