arrayDestructuring.test 5.4 KB

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