1Default values (static scalar tests)
2-----
3<?php
4
5function a(
6    $b = null,
7    $c = 'foo',
8    $d = A::B,
9    $f = +1,
10    $g = -1.0,
11    $h = array(),
12    $i = [],
13    $j = ['foo'],
14    $k = ['foo', 'bar' => 'baz']
15) {}
16-----
17array(
18    0: Stmt_Function(
19        attrGroups: array(
20        )
21        byRef: false
22        name: Identifier(
23            name: a
24        )
25        params: array(
26            0: Param(
27                attrGroups: array(
28                )
29                flags: 0
30                type: null
31                byRef: false
32                variadic: false
33                var: Expr_Variable(
34                    name: b
35                )
36                default: Expr_ConstFetch(
37                    name: Name(
38                        name: null
39                    )
40                )
41            )
42            1: Param(
43                attrGroups: array(
44                )
45                flags: 0
46                type: null
47                byRef: false
48                variadic: false
49                var: Expr_Variable(
50                    name: c
51                )
52                default: Scalar_String(
53                    value: foo
54                )
55            )
56            2: Param(
57                attrGroups: array(
58                )
59                flags: 0
60                type: null
61                byRef: false
62                variadic: false
63                var: Expr_Variable(
64                    name: d
65                )
66                default: Expr_ClassConstFetch(
67                    class: Name(
68                        name: A
69                    )
70                    name: Identifier(
71                        name: B
72                    )
73                )
74            )
75            3: Param(
76                attrGroups: array(
77                )
78                flags: 0
79                type: null
80                byRef: false
81                variadic: false
82                var: Expr_Variable(
83                    name: f
84                )
85                default: Expr_UnaryPlus(
86                    expr: Scalar_Int(
87                        value: 1
88                    )
89                )
90            )
91            4: Param(
92                attrGroups: array(
93                )
94                flags: 0
95                type: null
96                byRef: false
97                variadic: false
98                var: Expr_Variable(
99                    name: g
100                )
101                default: Expr_UnaryMinus(
102                    expr: Scalar_Float(
103                        value: 1
104                    )
105                )
106            )
107            5: Param(
108                attrGroups: array(
109                )
110                flags: 0
111                type: null
112                byRef: false
113                variadic: false
114                var: Expr_Variable(
115                    name: h
116                )
117                default: Expr_Array(
118                    items: array(
119                    )
120                )
121            )
122            6: Param(
123                attrGroups: array(
124                )
125                flags: 0
126                type: null
127                byRef: false
128                variadic: false
129                var: Expr_Variable(
130                    name: i
131                )
132                default: Expr_Array(
133                    items: array(
134                    )
135                )
136            )
137            7: Param(
138                attrGroups: array(
139                )
140                flags: 0
141                type: null
142                byRef: false
143                variadic: false
144                var: Expr_Variable(
145                    name: j
146                )
147                default: Expr_Array(
148                    items: array(
149                        0: ArrayItem(
150                            key: null
151                            value: Scalar_String(
152                                value: foo
153                            )
154                            byRef: false
155                            unpack: false
156                        )
157                    )
158                )
159            )
160            8: Param(
161                attrGroups: array(
162                )
163                flags: 0
164                type: null
165                byRef: false
166                variadic: false
167                var: Expr_Variable(
168                    name: k
169                )
170                default: Expr_Array(
171                    items: array(
172                        0: ArrayItem(
173                            key: null
174                            value: Scalar_String(
175                                value: foo
176                            )
177                            byRef: false
178                            unpack: false
179                        )
180                        1: ArrayItem(
181                            key: Scalar_String(
182                                value: bar
183                            )
184                            value: Scalar_String(
185                                value: baz
186                            )
187                            byRef: false
188                            unpack: false
189                        )
190                    )
191                )
192            )
193        )
194        returnType: null
195        stmts: array(
196        )
197    )
198)
199