Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/JKhtR
function name: (null)
number of ops: 12
compiled vars: !0 = $array, !1 = $sortingRules
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
36 0 E > ASSIGN !0, <array>
43 1 ASSIGN !1, <array>
49 2 ECHO 'Sorting+Params%3A%0A'
51 3 INIT_FCALL 'dynamicsort'
4 SEND_REF !0
5 SEND_VAR !1
6 DO_FCALL 0
53 7 ECHO '%0A---%0AOutput%3A%0A'
55 8 INIT_FCALL 'var_export'
9 SEND_VAR !0
10 DO_ICALL
11 > RETURN 1
Function sanitizecolumnreference:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 22
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 22
Branch analysis from position: 17
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 22
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 22
Branch analysis from position: 7
filename: /in/JKhtR
function name: sanitizeColumnReference
number of ops: 24
compiled vars: !0 = $row, !1 = $columnReference
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > RECV !0
1 RECV !1
4 2 ISSET_ISEMPTY_DIM_OBJ 0 ~2 !0, !1
3 BOOL_NOT ~3 ~2
4 > JMPZ_EX ~3 ~3, ->7
5 > TYPE_CHECK 16 ~4 !1
6 BOOL ~3 ~4
7 > > JMPZ ~3, ->22
5 8 > INIT_FCALL 'array_keys'
9 SEND_VAR !0
10 DO_ICALL $5
11 FETCH_DIM_IS ~6 $5, !1
12 COALESCE ~7 ~6
13 QM_ASSIGN ~7 null
14 ASSIGN !1, ~7
6 15 TYPE_CHECK 2 !1
16 > JMPZ ~9, ->22
7 17 > NEW $10 'Exception'
18 CONCAT ~11 'Failed+to+locate+column+by+position+using+column+reference%3A+', !1
19 SEND_VAL_EX ~11
20 DO_FCALL 0
21 > THROW 0 $10
10 22 > > RETURN !1
11 23* > RETURN null
End of function sanitizecolumnreference
Function dynamicsort:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 47) Position 1 = 4, Position 2 = 6
Branch analysis from position: 4
2 jumps found. (Code = 47) Position 1 = 7, Position 2 = 10
Branch analysis from position: 7
2 jumps found. (Code = 47) Position 1 = 11, Position 2 = 14
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
2 jumps found. (Code = 77) Position 1 = 22, Position 2 = 61
Branch analysis from position: 22
2 jumps found. (Code = 78) Position 1 = 23, Position 2 = 61
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 40, Position 2 = 45
Branch analysis from position: 40
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 45
2 jumps found. (Code = 77) Position 1 = 48, Position 2 = 59
Branch analysis from position: 48
2 jumps found. (Code = 78) Position 1 = 49, Position 2 = 59
Branch analysis from position: 49
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
Branch analysis from position: 59
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
Branch analysis from position: 59
Branch analysis from position: 61
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 61
Branch analysis from position: 14
Branch analysis from position: 10
Branch analysis from position: 6
filename: /in/JKhtR
function name: dynamicSort
number of ops: 72
compiled vars: !0 = $input, !1 = $sortingRules, !2 = $firstRow, !3 = $sortingParams, !4 = $rule, !5 = $columnReference, !6 = $column, !7 = $flag
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
13 0 E > RECV !0
1 RECV !1
14 2 BOOL_NOT ~8 !0
3 > JMPNZ_EX ~8 ~8, ->6
4 > BOOL_NOT ~9 !1
5 BOOL ~8 ~9
6 > > JMPNZ_EX ~8 ~8, ->10
7 > TYPE_CHECK 128 ~10 !0
8 BOOL_NOT ~11 ~10
9 BOOL ~8 ~11
10 > > JMPNZ_EX ~8 ~8, ->14
11 > TYPE_CHECK 128 ~12 !1
12 BOOL_NOT ~13 ~12
13 BOOL ~8 ~13
14 > > JMPZ ~8, ->16
15 15 > > RETURN null
17 16 > INIT_FCALL 'current'
17 SEND_VAR !0
18 DO_ICALL $14
19 ASSIGN !2, $14
18 20 ASSIGN !3, <array>
19 21 > FE_RESET_R $17 !1, ->61
22 > > FE_FETCH_R $17, !4, ->61
20 23 > CAST 7 ~18 !4
24 ASSIGN !4, ~18
21 25 INIT_FCALL 'sanitizecolumnreference'
26 SEND_VAR !2
27 INIT_FCALL 'array_shift'
28 SEND_REF !4
29 DO_ICALL $20
30 SEND_VAR $20
31 DO_FCALL 0 $21
32 ASSIGN !5, $21
22 33 INIT_FCALL 'array_column'
34 SEND_VAR !0
35 SEND_VAR !5
36 DO_ICALL $23
37 ASSIGN !6, $23
23 38 BOOL_NOT ~25 !6
39 > JMPZ ~25, ->45
24 40 > NEW $26 'Exception'
41 CONCAT ~27 'Failed+to+source+sortable+data+from+column+reference%3A+', !5
42 SEND_VAL_EX ~27
43 DO_FCALL 0
44 > THROW 0 $26
26 45 > ASSIGN_DIM !3
46 OP_DATA !6
27 47 > FE_RESET_R $30 !4, ->59
48 > > FE_FETCH_R $30, !7, ->59
28 49 > INIT_FCALL 'constant'
50 INIT_FCALL 'strtoupper'
51 SEND_VAR !7
52 DO_ICALL $32
53 CONCAT ~33 'SORT_', $32
54 SEND_VAL ~33
55 DO_ICALL $34
56 ASSIGN_DIM !3
57 OP_DATA $34
27 58 > JMP ->48
59 > FE_FREE $30
19 60 > JMP ->22
61 > FE_FREE $17
31 62 FETCH_DIM_W $35 !3
63 ASSIGN_REF $35, !0
32 64 INIT_FCALL 'var_export'
65 SEND_VAR !3
66 DO_ICALL
33 67 INIT_FCALL 'array_multisort'
68 SEND_UNPACK !3
69 CHECK_UNDEF_ARGS
70 DO_ICALL
34 71 > RETURN null
End of function dynamicsort
Generated using Vulcan Logic Dumper, using php 8.0.0