assign.test 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. Assignments
  2. -----
  3. <?php
  4. // simple assign
  5. $a = $b;
  6. // combined assign
  7. $a &= $b;
  8. $a |= $b;
  9. $a ^= $b;
  10. $a .= $b;
  11. $a /= $b;
  12. $a -= $b;
  13. $a %= $b;
  14. $a *= $b;
  15. $a += $b;
  16. $a <<= $b;
  17. $a >>= $b;
  18. $a **= $b;
  19. // chained assign
  20. $a = $b *= $c **= $d;
  21. // by ref assign
  22. $a =& $b;
  23. $a =& new B;
  24. // list() assign
  25. list($a) = $b;
  26. list($a, , $b) = $c;
  27. list($a, list(, $c), $d) = $e;
  28. // inc/dec
  29. ++$a;
  30. $a++;
  31. --$a;
  32. $a--;
  33. -----
  34. array(
  35. 0: Expr_Assign(
  36. var: Expr_Variable(
  37. name: a
  38. )
  39. expr: Expr_Variable(
  40. name: b
  41. )
  42. )
  43. 1: Expr_AssignOp_BitwiseAnd(
  44. var: Expr_Variable(
  45. name: a
  46. )
  47. expr: Expr_Variable(
  48. name: b
  49. )
  50. )
  51. 2: Expr_AssignOp_BitwiseOr(
  52. var: Expr_Variable(
  53. name: a
  54. )
  55. expr: Expr_Variable(
  56. name: b
  57. )
  58. )
  59. 3: Expr_AssignOp_BitwiseXor(
  60. var: Expr_Variable(
  61. name: a
  62. )
  63. expr: Expr_Variable(
  64. name: b
  65. )
  66. )
  67. 4: Expr_AssignOp_Concat(
  68. var: Expr_Variable(
  69. name: a
  70. )
  71. expr: Expr_Variable(
  72. name: b
  73. )
  74. )
  75. 5: Expr_AssignOp_Div(
  76. var: Expr_Variable(
  77. name: a
  78. )
  79. expr: Expr_Variable(
  80. name: b
  81. )
  82. )
  83. 6: Expr_AssignOp_Minus(
  84. var: Expr_Variable(
  85. name: a
  86. )
  87. expr: Expr_Variable(
  88. name: b
  89. )
  90. )
  91. 7: Expr_AssignOp_Mod(
  92. var: Expr_Variable(
  93. name: a
  94. )
  95. expr: Expr_Variable(
  96. name: b
  97. )
  98. )
  99. 8: Expr_AssignOp_Mul(
  100. var: Expr_Variable(
  101. name: a
  102. )
  103. expr: Expr_Variable(
  104. name: b
  105. )
  106. )
  107. 9: Expr_AssignOp_Plus(
  108. var: Expr_Variable(
  109. name: a
  110. )
  111. expr: Expr_Variable(
  112. name: b
  113. )
  114. )
  115. 10: Expr_AssignOp_ShiftLeft(
  116. var: Expr_Variable(
  117. name: a
  118. )
  119. expr: Expr_Variable(
  120. name: b
  121. )
  122. )
  123. 11: Expr_AssignOp_ShiftRight(
  124. var: Expr_Variable(
  125. name: a
  126. )
  127. expr: Expr_Variable(
  128. name: b
  129. )
  130. )
  131. 12: Expr_AssignOp_Pow(
  132. var: Expr_Variable(
  133. name: a
  134. )
  135. expr: Expr_Variable(
  136. name: b
  137. )
  138. )
  139. 13: Expr_Assign(
  140. var: Expr_Variable(
  141. name: a
  142. )
  143. expr: Expr_AssignOp_Mul(
  144. var: Expr_Variable(
  145. name: b
  146. )
  147. expr: Expr_AssignOp_Pow(
  148. var: Expr_Variable(
  149. name: c
  150. )
  151. expr: Expr_Variable(
  152. name: d
  153. )
  154. )
  155. )
  156. )
  157. 14: Expr_AssignRef(
  158. var: Expr_Variable(
  159. name: a
  160. )
  161. expr: Expr_Variable(
  162. name: b
  163. )
  164. )
  165. 15: Expr_AssignRef(
  166. var: Expr_Variable(
  167. name: a
  168. )
  169. expr: Expr_New(
  170. class: Name(
  171. parts: array(
  172. 0: B
  173. )
  174. )
  175. args: array(
  176. )
  177. )
  178. )
  179. 16: Expr_Assign(
  180. var: Expr_List(
  181. vars: array(
  182. 0: Expr_Variable(
  183. name: a
  184. )
  185. )
  186. )
  187. expr: Expr_Variable(
  188. name: b
  189. )
  190. )
  191. 17: Expr_Assign(
  192. var: Expr_List(
  193. vars: array(
  194. 0: Expr_Variable(
  195. name: a
  196. )
  197. 1: null
  198. 2: Expr_Variable(
  199. name: b
  200. )
  201. )
  202. )
  203. expr: Expr_Variable(
  204. name: c
  205. )
  206. )
  207. 18: Expr_Assign(
  208. var: Expr_List(
  209. vars: array(
  210. 0: Expr_Variable(
  211. name: a
  212. )
  213. 1: Expr_List(
  214. vars: array(
  215. 0: null
  216. 1: Expr_Variable(
  217. name: c
  218. )
  219. )
  220. )
  221. 2: Expr_Variable(
  222. name: d
  223. )
  224. )
  225. )
  226. expr: Expr_Variable(
  227. name: e
  228. )
  229. )
  230. 19: Expr_PreInc(
  231. var: Expr_Variable(
  232. name: a
  233. )
  234. )
  235. 20: Expr_PostInc(
  236. var: Expr_Variable(
  237. name: a
  238. )
  239. )
  240. 21: Expr_PreDec(
  241. var: Expr_Variable(
  242. name: a
  243. )
  244. )
  245. 22: Expr_PostDec(
  246. var: Expr_Variable(
  247. name: a
  248. )
  249. )
  250. )