682f7808289d6a5d18500387b1cfac6eeadc48aa
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / expr / fetchAndCall / constantDeref.test
1 Array/string dereferencing
2 -----
3 <?php
4
5 "abc"[2];
6 "abc"[2][0][0];
7
8 [1, 2, 3][2];
9 [1, 2, 3][2][0][0];
10
11 array(1, 2, 3)[2];
12 array(1, 2, 3)[2][0][0];
13
14 FOO[0];
15 Foo::BAR[1];
16 $foo::BAR[2][1][0];
17 -----
18 array(
19     0: Expr_ArrayDimFetch(
20         var: Scalar_String(
21             value: abc
22         )
23         dim: Scalar_LNumber(
24             value: 2
25         )
26     )
27     1: Expr_ArrayDimFetch(
28         var: Expr_ArrayDimFetch(
29             var: Expr_ArrayDimFetch(
30                 var: Scalar_String(
31                     value: abc
32                 )
33                 dim: Scalar_LNumber(
34                     value: 2
35                 )
36             )
37             dim: Scalar_LNumber(
38                 value: 0
39             )
40         )
41         dim: Scalar_LNumber(
42             value: 0
43         )
44     )
45     2: Expr_ArrayDimFetch(
46         var: Expr_Array(
47             items: array(
48                 0: Expr_ArrayItem(
49                     key: null
50                     value: Scalar_LNumber(
51                         value: 1
52                     )
53                     byRef: false
54                 )
55                 1: Expr_ArrayItem(
56                     key: null
57                     value: Scalar_LNumber(
58                         value: 2
59                     )
60                     byRef: false
61                 )
62                 2: Expr_ArrayItem(
63                     key: null
64                     value: Scalar_LNumber(
65                         value: 3
66                     )
67                     byRef: false
68                 )
69             )
70         )
71         dim: Scalar_LNumber(
72             value: 2
73         )
74     )
75     3: Expr_ArrayDimFetch(
76         var: Expr_ArrayDimFetch(
77             var: Expr_ArrayDimFetch(
78                 var: Expr_Array(
79                     items: array(
80                         0: Expr_ArrayItem(
81                             key: null
82                             value: Scalar_LNumber(
83                                 value: 1
84                             )
85                             byRef: false
86                         )
87                         1: Expr_ArrayItem(
88                             key: null
89                             value: Scalar_LNumber(
90                                 value: 2
91                             )
92                             byRef: false
93                         )
94                         2: Expr_ArrayItem(
95                             key: null
96                             value: Scalar_LNumber(
97                                 value: 3
98                             )
99                             byRef: false
100                         )
101                     )
102                 )
103                 dim: Scalar_LNumber(
104                     value: 2
105                 )
106             )
107             dim: Scalar_LNumber(
108                 value: 0
109             )
110         )
111         dim: Scalar_LNumber(
112             value: 0
113         )
114     )
115     4: Expr_ArrayDimFetch(
116         var: Expr_Array(
117             items: array(
118                 0: Expr_ArrayItem(
119                     key: null
120                     value: Scalar_LNumber(
121                         value: 1
122                     )
123                     byRef: false
124                 )
125                 1: Expr_ArrayItem(
126                     key: null
127                     value: Scalar_LNumber(
128                         value: 2
129                     )
130                     byRef: false
131                 )
132                 2: Expr_ArrayItem(
133                     key: null
134                     value: Scalar_LNumber(
135                         value: 3
136                     )
137                     byRef: false
138                 )
139             )
140         )
141         dim: Scalar_LNumber(
142             value: 2
143         )
144     )
145     5: Expr_ArrayDimFetch(
146         var: Expr_ArrayDimFetch(
147             var: Expr_ArrayDimFetch(
148                 var: Expr_Array(
149                     items: array(
150                         0: Expr_ArrayItem(
151                             key: null
152                             value: Scalar_LNumber(
153                                 value: 1
154                             )
155                             byRef: false
156                         )
157                         1: Expr_ArrayItem(
158                             key: null
159                             value: Scalar_LNumber(
160                                 value: 2
161                             )
162                             byRef: false
163                         )
164                         2: Expr_ArrayItem(
165                             key: null
166                             value: Scalar_LNumber(
167                                 value: 3
168                             )
169                             byRef: false
170                         )
171                     )
172                 )
173                 dim: Scalar_LNumber(
174                     value: 2
175                 )
176             )
177             dim: Scalar_LNumber(
178                 value: 0
179             )
180         )
181         dim: Scalar_LNumber(
182             value: 0
183         )
184     )
185     6: Expr_ArrayDimFetch(
186         var: Expr_ConstFetch(
187             name: Name(
188                 parts: array(
189                     0: FOO
190                 )
191             )
192         )
193         dim: Scalar_LNumber(
194             value: 0
195         )
196     )
197     7: Expr_ArrayDimFetch(
198         var: Expr_ClassConstFetch(
199             class: Name(
200                 parts: array(
201                     0: Foo
202                 )
203             )
204             name: BAR
205         )
206         dim: Scalar_LNumber(
207             value: 1
208         )
209     )
210     8: Expr_ArrayDimFetch(
211         var: Expr_ArrayDimFetch(
212             var: Expr_ArrayDimFetch(
213                 var: Expr_ClassConstFetch(
214                     class: Expr_Variable(
215                         name: foo
216                     )
217                     name: BAR
218                 )
219                 dim: Scalar_LNumber(
220                     value: 2
221                 )
222             )
223             dim: Scalar_LNumber(
224                 value: 1
225             )
226         )
227         dim: Scalar_LNumber(
228             value: 0
229         )
230     )
231 )