arrayDestructuring.test 5.0 KB

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