Chris@0
|
1 UVS indirect calls
|
Chris@0
|
2 -----
|
Chris@0
|
3 <?php
|
Chris@0
|
4
|
Chris@0
|
5 id('var_dump')(1);
|
Chris@0
|
6 id('id')('var_dump')(2);
|
Chris@0
|
7 id()()('var_dump')(4);
|
Chris@0
|
8 id(['udef', 'id'])[1]()('var_dump')(5);
|
Chris@0
|
9 (function($x) { return $x; })('id')('var_dump')(8);
|
Chris@0
|
10 ($f = function($x = null) use (&$f) {
|
Chris@0
|
11 return $x ?: $f;
|
Chris@0
|
12 })()()()('var_dump')(9);
|
Chris@0
|
13 [$obj, 'id']()('id')($id)('var_dump')(10);
|
Chris@0
|
14 'id'()('id')('var_dump')(12);
|
Chris@0
|
15 ('i' . 'd')()('var_dump')(13);
|
Chris@0
|
16 '\id'('var_dump')(14);
|
Chris@0
|
17 -----
|
Chris@0
|
18 !!php7
|
Chris@0
|
19 array(
|
Chris@13
|
20 0: Stmt_Expression(
|
Chris@13
|
21 expr: Expr_FuncCall(
|
Chris@0
|
22 name: Expr_FuncCall(
|
Chris@0
|
23 name: Name(
|
Chris@0
|
24 parts: array(
|
Chris@0
|
25 0: id
|
Chris@0
|
26 )
|
Chris@0
|
27 )
|
Chris@0
|
28 args: array(
|
Chris@0
|
29 0: Arg(
|
Chris@0
|
30 value: Scalar_String(
|
Chris@13
|
31 value: var_dump
|
Chris@0
|
32 )
|
Chris@0
|
33 byRef: false
|
Chris@0
|
34 unpack: false
|
Chris@0
|
35 )
|
Chris@0
|
36 )
|
Chris@0
|
37 )
|
Chris@0
|
38 args: array(
|
Chris@0
|
39 0: Arg(
|
Chris@13
|
40 value: Scalar_LNumber(
|
Chris@13
|
41 value: 1
|
Chris@0
|
42 )
|
Chris@0
|
43 byRef: false
|
Chris@0
|
44 unpack: false
|
Chris@0
|
45 )
|
Chris@0
|
46 )
|
Chris@0
|
47 )
|
Chris@0
|
48 )
|
Chris@13
|
49 1: Stmt_Expression(
|
Chris@13
|
50 expr: Expr_FuncCall(
|
Chris@0
|
51 name: Expr_FuncCall(
|
Chris@0
|
52 name: Expr_FuncCall(
|
Chris@0
|
53 name: Name(
|
Chris@0
|
54 parts: array(
|
Chris@0
|
55 0: id
|
Chris@0
|
56 )
|
Chris@0
|
57 )
|
Chris@0
|
58 args: array(
|
Chris@13
|
59 0: Arg(
|
Chris@13
|
60 value: Scalar_String(
|
Chris@13
|
61 value: id
|
Chris@0
|
62 )
|
Chris@0
|
63 byRef: false
|
Chris@13
|
64 unpack: false
|
Chris@0
|
65 )
|
Chris@0
|
66 )
|
Chris@0
|
67 )
|
Chris@0
|
68 args: array(
|
Chris@0
|
69 0: Arg(
|
Chris@0
|
70 value: Scalar_String(
|
Chris@13
|
71 value: var_dump
|
Chris@0
|
72 )
|
Chris@0
|
73 byRef: false
|
Chris@0
|
74 unpack: false
|
Chris@0
|
75 )
|
Chris@0
|
76 )
|
Chris@0
|
77 )
|
Chris@0
|
78 args: array(
|
Chris@0
|
79 0: Arg(
|
Chris@13
|
80 value: Scalar_LNumber(
|
Chris@13
|
81 value: 2
|
Chris@0
|
82 )
|
Chris@0
|
83 byRef: false
|
Chris@0
|
84 unpack: false
|
Chris@0
|
85 )
|
Chris@0
|
86 )
|
Chris@0
|
87 )
|
Chris@0
|
88 )
|
Chris@13
|
89 2: Stmt_Expression(
|
Chris@13
|
90 expr: Expr_FuncCall(
|
Chris@0
|
91 name: Expr_FuncCall(
|
Chris@0
|
92 name: Expr_FuncCall(
|
Chris@0
|
93 name: Expr_FuncCall(
|
Chris@13
|
94 name: Name(
|
Chris@13
|
95 parts: array(
|
Chris@13
|
96 0: id
|
Chris@0
|
97 )
|
Chris@0
|
98 )
|
Chris@0
|
99 args: array(
|
Chris@0
|
100 )
|
Chris@0
|
101 )
|
Chris@0
|
102 args: array(
|
Chris@0
|
103 )
|
Chris@0
|
104 )
|
Chris@0
|
105 args: array(
|
Chris@13
|
106 0: Arg(
|
Chris@13
|
107 value: Scalar_String(
|
Chris@13
|
108 value: var_dump
|
Chris@13
|
109 )
|
Chris@13
|
110 byRef: false
|
Chris@13
|
111 unpack: false
|
Chris@13
|
112 )
|
Chris@0
|
113 )
|
Chris@0
|
114 )
|
Chris@0
|
115 args: array(
|
Chris@0
|
116 0: Arg(
|
Chris@13
|
117 value: Scalar_LNumber(
|
Chris@13
|
118 value: 4
|
Chris@0
|
119 )
|
Chris@0
|
120 byRef: false
|
Chris@0
|
121 unpack: false
|
Chris@0
|
122 )
|
Chris@0
|
123 )
|
Chris@0
|
124 )
|
Chris@13
|
125 )
|
Chris@13
|
126 3: Stmt_Expression(
|
Chris@13
|
127 expr: Expr_FuncCall(
|
Chris@13
|
128 name: Expr_FuncCall(
|
Chris@13
|
129 name: Expr_FuncCall(
|
Chris@13
|
130 name: Expr_ArrayDimFetch(
|
Chris@13
|
131 var: Expr_FuncCall(
|
Chris@13
|
132 name: Name(
|
Chris@13
|
133 parts: array(
|
Chris@13
|
134 0: id
|
Chris@13
|
135 )
|
Chris@13
|
136 )
|
Chris@13
|
137 args: array(
|
Chris@13
|
138 0: Arg(
|
Chris@13
|
139 value: Expr_Array(
|
Chris@13
|
140 items: array(
|
Chris@13
|
141 0: Expr_ArrayItem(
|
Chris@13
|
142 key: null
|
Chris@13
|
143 value: Scalar_String(
|
Chris@13
|
144 value: udef
|
Chris@13
|
145 )
|
Chris@13
|
146 byRef: false
|
Chris@13
|
147 )
|
Chris@13
|
148 1: Expr_ArrayItem(
|
Chris@13
|
149 key: null
|
Chris@13
|
150 value: Scalar_String(
|
Chris@13
|
151 value: id
|
Chris@13
|
152 )
|
Chris@13
|
153 byRef: false
|
Chris@13
|
154 )
|
Chris@13
|
155 )
|
Chris@13
|
156 )
|
Chris@13
|
157 byRef: false
|
Chris@13
|
158 unpack: false
|
Chris@13
|
159 )
|
Chris@13
|
160 )
|
Chris@13
|
161 )
|
Chris@13
|
162 dim: Scalar_LNumber(
|
Chris@13
|
163 value: 1
|
Chris@13
|
164 )
|
Chris@13
|
165 )
|
Chris@13
|
166 args: array(
|
Chris@13
|
167 )
|
Chris@0
|
168 )
|
Chris@13
|
169 args: array(
|
Chris@13
|
170 0: Arg(
|
Chris@13
|
171 value: Scalar_String(
|
Chris@13
|
172 value: var_dump
|
Chris@13
|
173 )
|
Chris@13
|
174 byRef: false
|
Chris@13
|
175 unpack: false
|
Chris@13
|
176 )
|
Chris@13
|
177 )
|
Chris@13
|
178 )
|
Chris@13
|
179 args: array(
|
Chris@13
|
180 0: Arg(
|
Chris@13
|
181 value: Scalar_LNumber(
|
Chris@13
|
182 value: 5
|
Chris@13
|
183 )
|
Chris@13
|
184 byRef: false
|
Chris@13
|
185 unpack: false
|
Chris@13
|
186 )
|
Chris@0
|
187 )
|
Chris@0
|
188 )
|
Chris@0
|
189 )
|
Chris@13
|
190 4: Stmt_Expression(
|
Chris@13
|
191 expr: Expr_FuncCall(
|
Chris@13
|
192 name: Expr_FuncCall(
|
Chris@13
|
193 name: Expr_FuncCall(
|
Chris@13
|
194 name: Expr_Closure(
|
Chris@13
|
195 static: false
|
Chris@13
|
196 byRef: false
|
Chris@13
|
197 params: array(
|
Chris@13
|
198 0: Param(
|
Chris@13
|
199 type: null
|
Chris@13
|
200 byRef: false
|
Chris@13
|
201 variadic: false
|
Chris@13
|
202 var: Expr_Variable(
|
Chris@13
|
203 name: x
|
Chris@13
|
204 )
|
Chris@13
|
205 default: null
|
Chris@13
|
206 )
|
Chris@13
|
207 )
|
Chris@13
|
208 uses: array(
|
Chris@13
|
209 )
|
Chris@13
|
210 returnType: null
|
Chris@13
|
211 stmts: array(
|
Chris@13
|
212 0: Stmt_Return(
|
Chris@13
|
213 expr: Expr_Variable(
|
Chris@13
|
214 name: x
|
Chris@13
|
215 )
|
Chris@13
|
216 )
|
Chris@13
|
217 )
|
Chris@13
|
218 )
|
Chris@13
|
219 args: array(
|
Chris@13
|
220 0: Arg(
|
Chris@13
|
221 value: Scalar_String(
|
Chris@13
|
222 value: id
|
Chris@13
|
223 )
|
Chris@13
|
224 byRef: false
|
Chris@13
|
225 unpack: false
|
Chris@13
|
226 )
|
Chris@13
|
227 )
|
Chris@13
|
228 )
|
Chris@13
|
229 args: array(
|
Chris@13
|
230 0: Arg(
|
Chris@13
|
231 value: Scalar_String(
|
Chris@13
|
232 value: var_dump
|
Chris@13
|
233 )
|
Chris@13
|
234 byRef: false
|
Chris@13
|
235 unpack: false
|
Chris@13
|
236 )
|
Chris@13
|
237 )
|
Chris@13
|
238 )
|
Chris@13
|
239 args: array(
|
Chris@13
|
240 0: Arg(
|
Chris@13
|
241 value: Scalar_LNumber(
|
Chris@13
|
242 value: 8
|
Chris@13
|
243 )
|
Chris@13
|
244 byRef: false
|
Chris@13
|
245 unpack: false
|
Chris@13
|
246 )
|
Chris@13
|
247 )
|
Chris@13
|
248 )
|
Chris@13
|
249 )
|
Chris@13
|
250 5: Stmt_Expression(
|
Chris@13
|
251 expr: Expr_FuncCall(
|
Chris@0
|
252 name: Expr_FuncCall(
|
Chris@0
|
253 name: Expr_FuncCall(
|
Chris@0
|
254 name: Expr_FuncCall(
|
Chris@13
|
255 name: Expr_FuncCall(
|
Chris@13
|
256 name: Expr_Assign(
|
Chris@13
|
257 var: Expr_Variable(
|
Chris@13
|
258 name: f
|
Chris@13
|
259 )
|
Chris@13
|
260 expr: Expr_Closure(
|
Chris@13
|
261 static: false
|
Chris@13
|
262 byRef: false
|
Chris@13
|
263 params: array(
|
Chris@13
|
264 0: Param(
|
Chris@13
|
265 type: null
|
Chris@13
|
266 byRef: false
|
Chris@13
|
267 variadic: false
|
Chris@13
|
268 var: Expr_Variable(
|
Chris@13
|
269 name: x
|
Chris@13
|
270 )
|
Chris@13
|
271 default: Expr_ConstFetch(
|
Chris@13
|
272 name: Name(
|
Chris@13
|
273 parts: array(
|
Chris@13
|
274 0: null
|
Chris@13
|
275 )
|
Chris@13
|
276 )
|
Chris@13
|
277 )
|
Chris@13
|
278 )
|
Chris@0
|
279 )
|
Chris@13
|
280 uses: array(
|
Chris@13
|
281 0: Expr_ClosureUse(
|
Chris@13
|
282 var: Expr_Variable(
|
Chris@13
|
283 name: f
|
Chris@13
|
284 )
|
Chris@13
|
285 byRef: true
|
Chris@13
|
286 )
|
Chris@0
|
287 )
|
Chris@13
|
288 returnType: null
|
Chris@13
|
289 stmts: array(
|
Chris@13
|
290 0: Stmt_Return(
|
Chris@13
|
291 expr: Expr_Ternary(
|
Chris@13
|
292 cond: Expr_Variable(
|
Chris@13
|
293 name: x
|
Chris@13
|
294 )
|
Chris@13
|
295 if: null
|
Chris@13
|
296 else: Expr_Variable(
|
Chris@13
|
297 name: f
|
Chris@13
|
298 )
|
Chris@13
|
299 )
|
Chris@13
|
300 )
|
Chris@13
|
301 )
|
Chris@0
|
302 )
|
Chris@0
|
303 )
|
Chris@13
|
304 args: array(
|
Chris@13
|
305 )
|
Chris@13
|
306 )
|
Chris@13
|
307 args: array(
|
Chris@13
|
308 )
|
Chris@13
|
309 )
|
Chris@13
|
310 args: array(
|
Chris@13
|
311 )
|
Chris@13
|
312 )
|
Chris@13
|
313 args: array(
|
Chris@13
|
314 0: Arg(
|
Chris@13
|
315 value: Scalar_String(
|
Chris@13
|
316 value: var_dump
|
Chris@13
|
317 )
|
Chris@13
|
318 byRef: false
|
Chris@13
|
319 unpack: false
|
Chris@13
|
320 )
|
Chris@13
|
321 )
|
Chris@13
|
322 )
|
Chris@13
|
323 args: array(
|
Chris@13
|
324 0: Arg(
|
Chris@13
|
325 value: Scalar_LNumber(
|
Chris@13
|
326 value: 9
|
Chris@13
|
327 )
|
Chris@13
|
328 byRef: false
|
Chris@13
|
329 unpack: false
|
Chris@13
|
330 )
|
Chris@13
|
331 )
|
Chris@13
|
332 )
|
Chris@13
|
333 )
|
Chris@13
|
334 6: Stmt_Expression(
|
Chris@13
|
335 expr: Expr_FuncCall(
|
Chris@13
|
336 name: Expr_FuncCall(
|
Chris@13
|
337 name: Expr_FuncCall(
|
Chris@13
|
338 name: Expr_FuncCall(
|
Chris@13
|
339 name: Expr_FuncCall(
|
Chris@13
|
340 name: Expr_Array(
|
Chris@13
|
341 items: array(
|
Chris@13
|
342 0: Expr_ArrayItem(
|
Chris@13
|
343 key: null
|
Chris@13
|
344 value: Expr_Variable(
|
Chris@13
|
345 name: obj
|
Chris@13
|
346 )
|
Chris@13
|
347 byRef: false
|
Chris@13
|
348 )
|
Chris@13
|
349 1: Expr_ArrayItem(
|
Chris@13
|
350 key: null
|
Chris@13
|
351 value: Scalar_String(
|
Chris@13
|
352 value: id
|
Chris@13
|
353 )
|
Chris@13
|
354 byRef: false
|
Chris@13
|
355 )
|
Chris@13
|
356 )
|
Chris@13
|
357 )
|
Chris@13
|
358 args: array(
|
Chris@13
|
359 )
|
Chris@13
|
360 )
|
Chris@13
|
361 args: array(
|
Chris@13
|
362 0: Arg(
|
Chris@13
|
363 value: Scalar_String(
|
Chris@13
|
364 value: id
|
Chris@13
|
365 )
|
Chris@13
|
366 byRef: false
|
Chris@13
|
367 unpack: false
|
Chris@13
|
368 )
|
Chris@13
|
369 )
|
Chris@13
|
370 )
|
Chris@13
|
371 args: array(
|
Chris@13
|
372 0: Arg(
|
Chris@13
|
373 value: Expr_Variable(
|
Chris@13
|
374 name: id
|
Chris@13
|
375 )
|
Chris@13
|
376 byRef: false
|
Chris@13
|
377 unpack: false
|
Chris@13
|
378 )
|
Chris@13
|
379 )
|
Chris@13
|
380 )
|
Chris@13
|
381 args: array(
|
Chris@13
|
382 0: Arg(
|
Chris@13
|
383 value: Scalar_String(
|
Chris@13
|
384 value: var_dump
|
Chris@13
|
385 )
|
Chris@13
|
386 byRef: false
|
Chris@13
|
387 unpack: false
|
Chris@13
|
388 )
|
Chris@13
|
389 )
|
Chris@13
|
390 )
|
Chris@13
|
391 args: array(
|
Chris@13
|
392 0: Arg(
|
Chris@13
|
393 value: Scalar_LNumber(
|
Chris@13
|
394 value: 10
|
Chris@13
|
395 )
|
Chris@13
|
396 byRef: false
|
Chris@13
|
397 unpack: false
|
Chris@13
|
398 )
|
Chris@13
|
399 )
|
Chris@13
|
400 )
|
Chris@13
|
401 )
|
Chris@13
|
402 7: Stmt_Expression(
|
Chris@13
|
403 expr: Expr_FuncCall(
|
Chris@13
|
404 name: Expr_FuncCall(
|
Chris@13
|
405 name: Expr_FuncCall(
|
Chris@13
|
406 name: Expr_FuncCall(
|
Chris@13
|
407 name: Scalar_String(
|
Chris@13
|
408 value: id
|
Chris@0
|
409 )
|
Chris@0
|
410 args: array(
|
Chris@0
|
411 )
|
Chris@0
|
412 )
|
Chris@0
|
413 args: array(
|
Chris@0
|
414 0: Arg(
|
Chris@0
|
415 value: Scalar_String(
|
Chris@0
|
416 value: id
|
Chris@0
|
417 )
|
Chris@0
|
418 byRef: false
|
Chris@0
|
419 unpack: false
|
Chris@0
|
420 )
|
Chris@0
|
421 )
|
Chris@0
|
422 )
|
Chris@0
|
423 args: array(
|
Chris@0
|
424 0: Arg(
|
Chris@13
|
425 value: Scalar_String(
|
Chris@13
|
426 value: var_dump
|
Chris@0
|
427 )
|
Chris@0
|
428 byRef: false
|
Chris@0
|
429 unpack: false
|
Chris@0
|
430 )
|
Chris@0
|
431 )
|
Chris@0
|
432 )
|
Chris@0
|
433 args: array(
|
Chris@0
|
434 0: Arg(
|
Chris@13
|
435 value: Scalar_LNumber(
|
Chris@13
|
436 value: 12
|
Chris@0
|
437 )
|
Chris@0
|
438 byRef: false
|
Chris@0
|
439 unpack: false
|
Chris@0
|
440 )
|
Chris@0
|
441 )
|
Chris@0
|
442 )
|
Chris@0
|
443 )
|
Chris@13
|
444 8: Stmt_Expression(
|
Chris@13
|
445 expr: Expr_FuncCall(
|
Chris@0
|
446 name: Expr_FuncCall(
|
Chris@0
|
447 name: Expr_FuncCall(
|
Chris@13
|
448 name: Expr_BinaryOp_Concat(
|
Chris@13
|
449 left: Scalar_String(
|
Chris@13
|
450 value: i
|
Chris@13
|
451 )
|
Chris@13
|
452 right: Scalar_String(
|
Chris@13
|
453 value: d
|
Chris@13
|
454 )
|
Chris@0
|
455 )
|
Chris@0
|
456 args: array(
|
Chris@0
|
457 )
|
Chris@0
|
458 )
|
Chris@0
|
459 args: array(
|
Chris@0
|
460 0: Arg(
|
Chris@0
|
461 value: Scalar_String(
|
Chris@13
|
462 value: var_dump
|
Chris@0
|
463 )
|
Chris@0
|
464 byRef: false
|
Chris@0
|
465 unpack: false
|
Chris@0
|
466 )
|
Chris@0
|
467 )
|
Chris@0
|
468 )
|
Chris@0
|
469 args: array(
|
Chris@0
|
470 0: Arg(
|
Chris@13
|
471 value: Scalar_LNumber(
|
Chris@13
|
472 value: 13
|
Chris@0
|
473 )
|
Chris@0
|
474 byRef: false
|
Chris@0
|
475 unpack: false
|
Chris@0
|
476 )
|
Chris@0
|
477 )
|
Chris@0
|
478 )
|
Chris@0
|
479 )
|
Chris@13
|
480 9: Stmt_Expression(
|
Chris@13
|
481 expr: Expr_FuncCall(
|
Chris@0
|
482 name: Expr_FuncCall(
|
Chris@13
|
483 name: Scalar_String(
|
Chris@13
|
484 value: \id
|
Chris@0
|
485 )
|
Chris@0
|
486 args: array(
|
Chris@13
|
487 0: Arg(
|
Chris@13
|
488 value: Scalar_String(
|
Chris@13
|
489 value: var_dump
|
Chris@13
|
490 )
|
Chris@13
|
491 byRef: false
|
Chris@13
|
492 unpack: false
|
Chris@13
|
493 )
|
Chris@0
|
494 )
|
Chris@0
|
495 )
|
Chris@0
|
496 args: array(
|
Chris@0
|
497 0: Arg(
|
Chris@13
|
498 value: Scalar_LNumber(
|
Chris@13
|
499 value: 14
|
Chris@0
|
500 )
|
Chris@0
|
501 byRef: false
|
Chris@0
|
502 unpack: false
|
Chris@0
|
503 )
|
Chris@0
|
504 )
|
Chris@0
|
505 )
|
Chris@0
|
506 )
|
Chris@13
|
507 ) |