mirror of
https://github.com/danog/PHP-Parser.git
synced 2024-12-11 17:09:41 +01:00
9de96821f7
Introduced in PHP 5.4, represented using an AssignOp\Coalesce node.
374 lines
8.4 KiB
Plaintext
374 lines
8.4 KiB
Plaintext
Assignments
|
|
-----
|
|
<?php
|
|
// simple assign
|
|
$a = $b;
|
|
|
|
// combined assign
|
|
$a &= $b;
|
|
$a |= $b;
|
|
$a ^= $b;
|
|
$a .= $b;
|
|
$a /= $b;
|
|
$a -= $b;
|
|
$a %= $b;
|
|
$a *= $b;
|
|
$a += $b;
|
|
$a <<= $b;
|
|
$a >>= $b;
|
|
$a **= $b;
|
|
$a ??= $b;
|
|
|
|
// chained assign
|
|
$a = $b *= $c **= $d;
|
|
|
|
// by ref assign
|
|
$a =& $b;
|
|
|
|
// list() assign
|
|
list($a) = $b;
|
|
list($a, , $b) = $c;
|
|
list($a, list(, $c), $d) = $e;
|
|
|
|
// inc/dec
|
|
++$a;
|
|
$a++;
|
|
--$a;
|
|
$a--;
|
|
-----
|
|
array(
|
|
0: Stmt_Expression(
|
|
expr: Expr_Assign(
|
|
var: Expr_Variable(
|
|
name: a
|
|
comments: array(
|
|
0: // simple assign
|
|
)
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
comments: array(
|
|
0: // simple assign
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // simple assign
|
|
)
|
|
)
|
|
1: Stmt_Expression(
|
|
expr: Expr_AssignOp_BitwiseAnd(
|
|
var: Expr_Variable(
|
|
name: a
|
|
comments: array(
|
|
0: // combined assign
|
|
)
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
comments: array(
|
|
0: // combined assign
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // combined assign
|
|
)
|
|
)
|
|
2: Stmt_Expression(
|
|
expr: Expr_AssignOp_BitwiseOr(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
3: Stmt_Expression(
|
|
expr: Expr_AssignOp_BitwiseXor(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
4: Stmt_Expression(
|
|
expr: Expr_AssignOp_Concat(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
5: Stmt_Expression(
|
|
expr: Expr_AssignOp_Div(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
6: Stmt_Expression(
|
|
expr: Expr_AssignOp_Minus(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
7: Stmt_Expression(
|
|
expr: Expr_AssignOp_Mod(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
8: Stmt_Expression(
|
|
expr: Expr_AssignOp_Mul(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
9: Stmt_Expression(
|
|
expr: Expr_AssignOp_Plus(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
10: Stmt_Expression(
|
|
expr: Expr_AssignOp_ShiftLeft(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
11: Stmt_Expression(
|
|
expr: Expr_AssignOp_ShiftRight(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
12: Stmt_Expression(
|
|
expr: Expr_AssignOp_Pow(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
13: Stmt_Expression(
|
|
expr: Expr_AssignOp_Coalesce(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
14: Stmt_Expression(
|
|
expr: Expr_Assign(
|
|
var: Expr_Variable(
|
|
name: a
|
|
comments: array(
|
|
0: // chained assign
|
|
)
|
|
)
|
|
expr: Expr_AssignOp_Mul(
|
|
var: Expr_Variable(
|
|
name: b
|
|
)
|
|
expr: Expr_AssignOp_Pow(
|
|
var: Expr_Variable(
|
|
name: c
|
|
)
|
|
expr: Expr_Variable(
|
|
name: d
|
|
)
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // chained assign
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // chained assign
|
|
)
|
|
)
|
|
15: Stmt_Expression(
|
|
expr: Expr_AssignRef(
|
|
var: Expr_Variable(
|
|
name: a
|
|
comments: array(
|
|
0: // by ref assign
|
|
)
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
comments: array(
|
|
0: // by ref assign
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // by ref assign
|
|
)
|
|
)
|
|
16: Stmt_Expression(
|
|
expr: Expr_Assign(
|
|
var: Expr_List(
|
|
items: array(
|
|
0: Expr_ArrayItem(
|
|
key: null
|
|
value: Expr_Variable(
|
|
name: a
|
|
)
|
|
byRef: false
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // list() assign
|
|
)
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
comments: array(
|
|
0: // list() assign
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // list() assign
|
|
)
|
|
)
|
|
17: Stmt_Expression(
|
|
expr: Expr_Assign(
|
|
var: Expr_List(
|
|
items: array(
|
|
0: Expr_ArrayItem(
|
|
key: null
|
|
value: Expr_Variable(
|
|
name: a
|
|
)
|
|
byRef: false
|
|
)
|
|
1: null
|
|
2: Expr_ArrayItem(
|
|
key: null
|
|
value: Expr_Variable(
|
|
name: b
|
|
)
|
|
byRef: false
|
|
)
|
|
)
|
|
)
|
|
expr: Expr_Variable(
|
|
name: c
|
|
)
|
|
)
|
|
)
|
|
18: Stmt_Expression(
|
|
expr: Expr_Assign(
|
|
var: Expr_List(
|
|
items: array(
|
|
0: Expr_ArrayItem(
|
|
key: null
|
|
value: Expr_Variable(
|
|
name: a
|
|
)
|
|
byRef: false
|
|
)
|
|
1: Expr_ArrayItem(
|
|
key: null
|
|
value: Expr_List(
|
|
items: array(
|
|
0: null
|
|
1: Expr_ArrayItem(
|
|
key: null
|
|
value: Expr_Variable(
|
|
name: c
|
|
)
|
|
byRef: false
|
|
)
|
|
)
|
|
)
|
|
byRef: false
|
|
)
|
|
2: Expr_ArrayItem(
|
|
key: null
|
|
value: Expr_Variable(
|
|
name: d
|
|
)
|
|
byRef: false
|
|
)
|
|
)
|
|
)
|
|
expr: Expr_Variable(
|
|
name: e
|
|
)
|
|
)
|
|
)
|
|
19: Stmt_Expression(
|
|
expr: Expr_PreInc(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
comments: array(
|
|
0: // inc/dec
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // inc/dec
|
|
)
|
|
)
|
|
20: Stmt_Expression(
|
|
expr: Expr_PostInc(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
)
|
|
)
|
|
21: Stmt_Expression(
|
|
expr: Expr_PreDec(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
)
|
|
)
|
|
22: Stmt_Expression(
|
|
expr: Expr_PostDec(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
)
|
|
)
|
|
) |