1Function calls
2-----
3<?php
4
5// function name variations
6a();
7$a();
8${'a'}();
9$$a();
10$$$a();
11$a['b']();
12$a->b['c']();
13
14// array dereferencing
15a()['b'];
16-----
17array(
18    0: Stmt_Expression(
19        expr: Expr_FuncCall(
20            name: Name(
21                name: a
22            )
23            args: array(
24            )
25        )
26        comments: array(
27            0: // function name variations
28        )
29    )
30    1: Stmt_Expression(
31        expr: Expr_FuncCall(
32            name: Expr_Variable(
33                name: a
34            )
35            args: array(
36            )
37        )
38    )
39    2: Stmt_Expression(
40        expr: Expr_FuncCall(
41            name: Expr_Variable(
42                name: Scalar_String(
43                    value: a
44                )
45            )
46            args: array(
47            )
48        )
49    )
50    3: Stmt_Expression(
51        expr: Expr_FuncCall(
52            name: Expr_Variable(
53                name: Expr_Variable(
54                    name: a
55                )
56            )
57            args: array(
58            )
59        )
60    )
61    4: Stmt_Expression(
62        expr: Expr_FuncCall(
63            name: Expr_Variable(
64                name: Expr_Variable(
65                    name: Expr_Variable(
66                        name: a
67                    )
68                )
69            )
70            args: array(
71            )
72        )
73    )
74    5: Stmt_Expression(
75        expr: Expr_FuncCall(
76            name: Expr_ArrayDimFetch(
77                var: Expr_Variable(
78                    name: a
79                )
80                dim: Scalar_String(
81                    value: b
82                )
83            )
84            args: array(
85            )
86        )
87    )
88    6: Stmt_Expression(
89        expr: Expr_FuncCall(
90            name: Expr_ArrayDimFetch(
91                var: Expr_PropertyFetch(
92                    var: Expr_Variable(
93                        name: a
94                    )
95                    name: Identifier(
96                        name: b
97                    )
98                )
99                dim: Scalar_String(
100                    value: c
101                )
102            )
103            args: array(
104            )
105        )
106    )
107    7: Stmt_Expression(
108        expr: Expr_ArrayDimFetch(
109            var: Expr_FuncCall(
110                name: Name(
111                    name: a
112                )
113                args: array(
114                )
115            )
116            dim: Scalar_String(
117                value: b
118            )
119        )
120        comments: array(
121            0: // array dereferencing
122        )
123    )
124)
125