assign.test 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  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. $a ??= $b;
  20. // chained assign
  21. $a = $b *= $c **= $d;
  22. // by ref assign
  23. $a =& $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: Stmt_Expression(
  36. expr: Expr_Assign(
  37. var: Expr_Variable(
  38. name: a
  39. )
  40. expr: Expr_Variable(
  41. name: b
  42. )
  43. )
  44. comments: array(
  45. 0: // simple assign
  46. )
  47. )
  48. 1: Stmt_Expression(
  49. expr: Expr_AssignOp_BitwiseAnd(
  50. var: Expr_Variable(
  51. name: a
  52. )
  53. expr: Expr_Variable(
  54. name: b
  55. )
  56. )
  57. comments: array(
  58. 0: // combined assign
  59. )
  60. )
  61. 2: Stmt_Expression(
  62. expr: Expr_AssignOp_BitwiseOr(
  63. var: Expr_Variable(
  64. name: a
  65. )
  66. expr: Expr_Variable(
  67. name: b
  68. )
  69. )
  70. )
  71. 3: Stmt_Expression(
  72. expr: Expr_AssignOp_BitwiseXor(
  73. var: Expr_Variable(
  74. name: a
  75. )
  76. expr: Expr_Variable(
  77. name: b
  78. )
  79. )
  80. )
  81. 4: Stmt_Expression(
  82. expr: Expr_AssignOp_Concat(
  83. var: Expr_Variable(
  84. name: a
  85. )
  86. expr: Expr_Variable(
  87. name: b
  88. )
  89. )
  90. )
  91. 5: Stmt_Expression(
  92. expr: Expr_AssignOp_Div(
  93. var: Expr_Variable(
  94. name: a
  95. )
  96. expr: Expr_Variable(
  97. name: b
  98. )
  99. )
  100. )
  101. 6: Stmt_Expression(
  102. expr: Expr_AssignOp_Minus(
  103. var: Expr_Variable(
  104. name: a
  105. )
  106. expr: Expr_Variable(
  107. name: b
  108. )
  109. )
  110. )
  111. 7: Stmt_Expression(
  112. expr: Expr_AssignOp_Mod(
  113. var: Expr_Variable(
  114. name: a
  115. )
  116. expr: Expr_Variable(
  117. name: b
  118. )
  119. )
  120. )
  121. 8: Stmt_Expression(
  122. expr: Expr_AssignOp_Mul(
  123. var: Expr_Variable(
  124. name: a
  125. )
  126. expr: Expr_Variable(
  127. name: b
  128. )
  129. )
  130. )
  131. 9: Stmt_Expression(
  132. expr: Expr_AssignOp_Plus(
  133. var: Expr_Variable(
  134. name: a
  135. )
  136. expr: Expr_Variable(
  137. name: b
  138. )
  139. )
  140. )
  141. 10: Stmt_Expression(
  142. expr: Expr_AssignOp_ShiftLeft(
  143. var: Expr_Variable(
  144. name: a
  145. )
  146. expr: Expr_Variable(
  147. name: b
  148. )
  149. )
  150. )
  151. 11: Stmt_Expression(
  152. expr: Expr_AssignOp_ShiftRight(
  153. var: Expr_Variable(
  154. name: a
  155. )
  156. expr: Expr_Variable(
  157. name: b
  158. )
  159. )
  160. )
  161. 12: Stmt_Expression(
  162. expr: Expr_AssignOp_Pow(
  163. var: Expr_Variable(
  164. name: a
  165. )
  166. expr: Expr_Variable(
  167. name: b
  168. )
  169. )
  170. )
  171. 13: Stmt_Expression(
  172. expr: Expr_AssignOp_Coalesce(
  173. var: Expr_Variable(
  174. name: a
  175. )
  176. expr: Expr_Variable(
  177. name: b
  178. )
  179. )
  180. )
  181. 14: Stmt_Expression(
  182. expr: Expr_Assign(
  183. var: Expr_Variable(
  184. name: a
  185. )
  186. expr: Expr_AssignOp_Mul(
  187. var: Expr_Variable(
  188. name: b
  189. )
  190. expr: Expr_AssignOp_Pow(
  191. var: Expr_Variable(
  192. name: c
  193. )
  194. expr: Expr_Variable(
  195. name: d
  196. )
  197. )
  198. )
  199. )
  200. comments: array(
  201. 0: // chained assign
  202. )
  203. )
  204. 15: Stmt_Expression(
  205. expr: Expr_AssignRef(
  206. var: Expr_Variable(
  207. name: a
  208. )
  209. expr: Expr_Variable(
  210. name: b
  211. )
  212. )
  213. comments: array(
  214. 0: // by ref assign
  215. )
  216. )
  217. 16: Stmt_Expression(
  218. expr: Expr_Assign(
  219. var: Expr_List(
  220. items: array(
  221. 0: ArrayItem(
  222. key: null
  223. value: Expr_Variable(
  224. name: a
  225. )
  226. byRef: false
  227. unpack: false
  228. )
  229. )
  230. )
  231. expr: Expr_Variable(
  232. name: b
  233. )
  234. )
  235. comments: array(
  236. 0: // list() assign
  237. )
  238. )
  239. 17: Stmt_Expression(
  240. expr: Expr_Assign(
  241. var: Expr_List(
  242. items: array(
  243. 0: ArrayItem(
  244. key: null
  245. value: Expr_Variable(
  246. name: a
  247. )
  248. byRef: false
  249. unpack: false
  250. )
  251. 1: null
  252. 2: ArrayItem(
  253. key: null
  254. value: Expr_Variable(
  255. name: b
  256. )
  257. byRef: false
  258. unpack: false
  259. )
  260. )
  261. )
  262. expr: Expr_Variable(
  263. name: c
  264. )
  265. )
  266. )
  267. 18: Stmt_Expression(
  268. expr: Expr_Assign(
  269. var: Expr_List(
  270. items: array(
  271. 0: ArrayItem(
  272. key: null
  273. value: Expr_Variable(
  274. name: a
  275. )
  276. byRef: false
  277. unpack: false
  278. )
  279. 1: ArrayItem(
  280. key: null
  281. value: Expr_List(
  282. items: array(
  283. 0: null
  284. 1: ArrayItem(
  285. key: null
  286. value: Expr_Variable(
  287. name: c
  288. )
  289. byRef: false
  290. unpack: false
  291. )
  292. )
  293. )
  294. byRef: false
  295. unpack: false
  296. )
  297. 2: ArrayItem(
  298. key: null
  299. value: Expr_Variable(
  300. name: d
  301. )
  302. byRef: false
  303. unpack: false
  304. )
  305. )
  306. )
  307. expr: Expr_Variable(
  308. name: e
  309. )
  310. )
  311. )
  312. 19: Stmt_Expression(
  313. expr: Expr_PreInc(
  314. var: Expr_Variable(
  315. name: a
  316. )
  317. )
  318. comments: array(
  319. 0: // inc/dec
  320. )
  321. )
  322. 20: Stmt_Expression(
  323. expr: Expr_PostInc(
  324. var: Expr_Variable(
  325. name: a
  326. )
  327. )
  328. )
  329. 21: Stmt_Expression(
  330. expr: Expr_PreDec(
  331. var: Expr_Variable(
  332. name: a
  333. )
  334. )
  335. )
  336. 22: Stmt_Expression(
  337. expr: Expr_PostDec(
  338. var: Expr_Variable(
  339. name: a
  340. )
  341. )
  342. )
  343. )