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