1--TEST-- 2Array destructuring 3--FILE-- 4<?php 5 6require __DIR__ . '/../util.php'; 7 8$code = <<<'PHP' 9<?php 10list('foo' => $a, 'bar' => $b) = $x; 11[$a, $b] = $x; 12['foo' => $a, 'bar' => $b] = $x; 13[, [$a]] = $x; 14PHP; 15 16echo ast_dump(ast\parse_code($code, $version=70)); 17 18?> 19--EXPECT-- 20AST_STMT_LIST 21 0: AST_ASSIGN 22 var: AST_ARRAY 23 flags: ARRAY_SYNTAX_LIST (1) 24 0: AST_ARRAY_ELEM 25 flags: 0 26 value: AST_VAR 27 name: "a" 28 key: "foo" 29 1: AST_ARRAY_ELEM 30 flags: 0 31 value: AST_VAR 32 name: "b" 33 key: "bar" 34 expr: AST_VAR 35 name: "x" 36 1: AST_ASSIGN 37 var: AST_ARRAY 38 flags: ARRAY_SYNTAX_SHORT (3) 39 0: AST_ARRAY_ELEM 40 flags: 0 41 value: AST_VAR 42 name: "a" 43 key: null 44 1: AST_ARRAY_ELEM 45 flags: 0 46 value: AST_VAR 47 name: "b" 48 key: null 49 expr: AST_VAR 50 name: "x" 51 2: AST_ASSIGN 52 var: AST_ARRAY 53 flags: ARRAY_SYNTAX_SHORT (3) 54 0: AST_ARRAY_ELEM 55 flags: 0 56 value: AST_VAR 57 name: "a" 58 key: "foo" 59 1: AST_ARRAY_ELEM 60 flags: 0 61 value: AST_VAR 62 name: "b" 63 key: "bar" 64 expr: AST_VAR 65 name: "x" 66 3: AST_ASSIGN 67 var: AST_ARRAY 68 flags: ARRAY_SYNTAX_SHORT (3) 69 0: null 70 1: AST_ARRAY_ELEM 71 flags: 0 72 value: AST_ARRAY 73 flags: ARRAY_SYNTAX_SHORT (3) 74 0: AST_ARRAY_ELEM 75 flags: 0 76 value: AST_VAR 77 name: "a" 78 key: null 79 key: null 80 expr: AST_VAR 81 name: "x"