Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: (null)
number of ops: 17
compiled vars: !0 = $obj, !1 = $tester
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
179 0 E > NEW $2 'DynamicPropInitOnGet'
181 1 SEND_VAL_EX <array>
179 2 DO_FCALL 0
3 ASSIGN !0, $2
187 4 NEW $5 'TestMagicMethods'
5 SEND_VAR_EX !0
6 DO_FCALL 0
7 ASSIGN !1, $5
189 8 ECHO '%2A%2A%2A%2A%2A+Test+the+%27known%27+property+%2A%2A%2A%2A%2A%0A%0A'
190 9 INIT_METHOD_CALL !1, 'test'
10 SEND_VAL_EX 'known'
11 DO_FCALL 0
192 12 ECHO '%0A%0A%2A%2A%2A%2A%2A+Unknown%2C+unexpected+dynamic+property+%2A%2A%2A%2A%2A%0A%0A'
193 13 INIT_METHOD_CALL !1, 'test'
14 SEND_VAL_EX 'unknown'
15 DO_FCALL 0
16 > RETURN 1
Class DynamicPropInitOnGet:
Function __construct:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 7
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 7
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename: /in/6gXXU
function name: __construct
number of ops: 9
compiled vars: !0 = $props, !1 = $value, !2 = $prop
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
17 0 E > RECV !0
18 1 > FE_RESET_R $3 !0, ->7
2 > > FE_FETCH_R ~4 $3, !1, ->7
3 > ASSIGN !2, ~4
19 4 ASSIGN_OBJ !2
5 OP_DATA !1
18 6 > JMP ->2
7 > FE_FREE $3
21 8 > RETURN null
End of function __construct
Function __get:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 13
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
2 jumps found. (Code = 77) Position 1 = 18, Position 2 = 29
Branch analysis from position: 18
2 jumps found. (Code = 78) Position 1 = 19, Position 2 = 29
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 24
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
Branch analysis from position: 29
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 29
filename: /in/6gXXU
function name: __get
number of ops: 33
compiled vars: !0 = $prop, !1 = $column
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
23 0 E > RECV !0
24 1 IS_NOT_IDENTICAL !0, 'known'
2 > JMPZ ~2, ->13
25 3 > INIT_FCALL 'trigger_error'
26 4 INIT_FCALL 'sprintf'
5 SEND_VAL 'Getting+the+dynamic+property+%22%25s%22+on+%25s+is+deprecated'
6 SEND_VAR !0
7 SEND_VAL 'DynamicPropInitOnGet'
8 DO_ICALL $3
9 SEND_VAR $3
27 10 SEND_VAL 16384
25 11 DO_ICALL
29 12 > RETURN null
32 13 > NEW $6 'stdClass'
14 DO_FCALL 0
15 ASSIGN_OBJ 'known'
16 OP_DATA $6
33 17 > FE_RESET_R $8 <array>, ->29
18 > > FE_FETCH_R $8, !1, ->29
34 19 > ISSET_ISEMPTY_PROP_OBJ !1
20 > JMPZ ~11, ->24
21 > FETCH_OBJ_R ~12 !1
22 QM_ASSIGN ~13 ~12
23 > JMP ->25
24 > QM_ASSIGN ~13 null
25 > FETCH_OBJ_W $9 'known'
26 ASSIGN_OBJ $9, !1
27 OP_DATA ~13
33 28 > JMP ->18
29 > FE_FREE $8
37 30 FETCH_OBJ_R ~14 'known'
31 > RETURN ~14
38 32* > RETURN null
End of function __get
Function __isset:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 5
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: __isset
number of ops: 7
compiled vars: !0 = $prop
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
40 0 E > RECV !0
41 1 IS_IDENTICAL !0, 'known'
2 > JMPZ ~1, ->5
42 3 > ISSET_ISEMPTY_PROP_OBJ ~2 'known'
4 > RETURN ~2
45 5 > > RETURN <false>
46 6* > RETURN null
End of function __isset
Function __set:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 7
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: __set
number of ops: 17
compiled vars: !0 = $prop, !1 = $value
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
48 0 E > RECV !0
1 RECV !1
49 2 IS_IDENTICAL !0, 'known'
3 > JMPZ ~2, ->7
50 4 > ASSIGN_OBJ 'known'
5 OP_DATA !1
51 6 > RETURN null
54 7 > INIT_FCALL 'trigger_error'
55 8 INIT_FCALL 'sprintf'
9 SEND_VAL 'Setting+the+dynamic+property+%22%25s%22+on+%25s+is+deprecated'
10 SEND_VAR !0
11 SEND_VAL 'DynamicPropInitOnGet'
12 DO_ICALL $4
13 SEND_VAR $4
56 14 SEND_VAL 16384
54 15 DO_ICALL
58 16 > RETURN null
End of function __set
Function __unset:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 5
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: __unset
number of ops: 15
compiled vars: !0 = $prop
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
60 0 E > RECV !0
61 1 IS_IDENTICAL !0, 'known'
2 > JMPZ ~1, ->5
62 3 > UNSET_OBJ 'known'
63 4 > RETURN null
66 5 > INIT_FCALL 'trigger_error'
67 6 INIT_FCALL 'sprintf'
7 SEND_VAL 'Unsetting+the+dynamic+property+%22%25s%22+on+%25s+is+deprecated'
8 SEND_VAR !0
9 SEND_VAL 'DynamicPropInitOnGet'
10 DO_ICALL $2
11 SEND_VAR $2
68 12 SEND_VAL 16384
66 13 DO_ICALL
70 14 > RETURN null
End of function __unset
End of class DynamicPropInitOnGet.
Class TestMagicMethods:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: __construct
number of ops: 4
compiled vars: !0 = $obj
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
77 0 E > RECV !0
78 1 ASSIGN_OBJ 'obj'
2 OP_DATA !0
79 3 > RETURN null
End of function __construct
Function test:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: test
number of ops: 18
compiled vars: !0 = $prop
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
81 0 E > RECV !0
82 1 IS_IDENTICAL ~2 !0, 'known'
2 ASSIGN_OBJ 'is_known_prop'
3 OP_DATA ~2
86 4 INIT_METHOD_CALL 'test_isset'
5 SEND_VAR_EX !0
6 DO_FCALL 0
89 7 INIT_METHOD_CALL 'test_get'
8 SEND_VAR_EX !0
9 DO_FCALL 0
92 10 INIT_METHOD_CALL 'test_isset'
11 SEND_VAR_EX !0
12 SEND_VAL_EX <true>
13 DO_FCALL 0
95 14 INIT_METHOD_CALL 'test_unset'
15 SEND_VAR_EX !0
16 DO_FCALL 0
96 17 > RETURN null
End of function test
Function test_isset:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 16
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 24
Branch analysis from position: 22
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 24
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: test_isset
number of ops: 36
compiled vars: !0 = $prop, !1 = $after_get, !2 = $actual, !3 = $expected
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
98 0 E > RECV !0
1 RECV_INIT !1 <false>
99 2 FETCH_OBJ_IS ~4 'obj'
3 ISSET_ISEMPTY_PROP_OBJ ~5 ~4, !0
4 ASSIGN !2, ~5
101 5 BOOL_NOT ~7 !1
6 > JMPZ ~7, ->16
102 7 > INIT_FCALL 'printf'
8 SEND_VAL '__isset%28%29+results+should+be+false+%25s%0A'
9 INIT_METHOD_CALL 'test_results'
10 TYPE_CHECK 4 ~8 !2
11 SEND_VAL_EX ~8
12 DO_FCALL 0 $9
13 SEND_VAR $9
14 DO_ICALL
101 15 > JMP ->32
104 16 > FETCH_OBJ_R ~11 'is_known_prop'
17 ASSIGN !3, ~11
105 18 INIT_FCALL 'printf'
106 19 SEND_VAL '%0A%0A__isset%28%29+after+__get%28%29+results+should+be+%25s+%25s%0A'
107 20 FETCH_OBJ_R ~13 'is_known_prop'
21 > JMPZ ~13, ->24
22 > QM_ASSIGN ~14 'true'
23 > JMP ->25
24 > QM_ASSIGN ~14 'false'
25 > SEND_VAL ~14
108 26 INIT_METHOD_CALL 'test_results'
27 IS_EQUAL ~15 !3, !2
28 SEND_VAL_EX ~15
29 DO_FCALL 0 $16
30 SEND_VAR $16
105 31 DO_ICALL
112 32 > INIT_FCALL 'var_dump'
33 SEND_VAR !2
34 DO_ICALL
113 35 > RETURN null
End of function test_isset
Function test_get:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 17
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: test_get
number of ops: 30
compiled vars: !0 = $prop, !1 = $actual, !2 = $message
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
115 0 E > RECV !0
116 1 FETCH_OBJ_R ~3 'obj'
2 FETCH_OBJ_R ~4 ~3, !0
3 ASSIGN !1, ~4
117 4 ASSIGN !2, '%0A%0A__get%28%29+results+should+be+%25s+%25s%0A'
118 5 FETCH_OBJ_R ~7 'is_known_prop'
6 > JMPZ ~7, ->17
119 7 > INIT_FCALL 'printf'
8 SEND_VAR !2
9 SEND_VAL 'an+object+with+prop1+and+prop2'
10 INIT_METHOD_CALL 'test_results'
11 INSTANCEOF ~8 !1, 'stdClass'
12 SEND_VAL_EX ~8
13 DO_FCALL 0 $9
14 SEND_VAR $9
15 DO_ICALL
118 16 > JMP ->26
121 17 > INIT_FCALL 'printf'
18 SEND_VAR !2
19 SEND_VAL 'null'
20 INIT_METHOD_CALL 'test_results'
21 TYPE_CHECK 2 ~11 !1
22 SEND_VAL_EX ~11
23 DO_FCALL 0 $12
24 SEND_VAR $12
25 DO_ICALL
124 26 > INIT_FCALL 'var_dump'
27 SEND_VAR !1
28 DO_ICALL
125 29 > RETURN null
End of function test_get
Function test_set:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 26
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 26
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 26
Branch analysis from position: 17
Branch analysis from position: 26
filename: /in/6gXXU
function name: test_set
number of ops: 38
compiled vars: !0 = $prop, !1 = $value, !2 = $obj, !3 = $actual
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
127 0 E > RECV !0
128 1 FETCH_OBJ_R ~4 'is_known_prop'
2 > JMPZ ~4, ->8
3 > FETCH_OBJ_R ~5 !2
4 FETCH_OBJ_R ~6 ~5, 'known'
5 CAST 7 ~7 ~6
6 QM_ASSIGN ~8 ~7
7 > JMP ->9
8 > QM_ASSIGN ~8 'I+am+an+unknown+dynamic+property'
9 > ASSIGN !1, ~8
129 10 ASSIGN_OBJ !2, !0
11 OP_DATA !1
130 12 FETCH_OBJ_R ~11 'obj'
13 FETCH_OBJ_R ~12 ~11, !0
14 ASSIGN !3, ~12
132 15 FETCH_OBJ_R ~14 'is_known_prop'
16 > JMPZ ~14, ->26
133 17 > INIT_FCALL 'printf'
137 18 SEND_VAL '%0A%0A__set%28%29+results+should+set+the+value+%25s+and+not+throw+a+deprecation+on+PHP+8.2%2B.However%2C+once+the+__get%28%29+is+called+again%2C+it+will+set+reset+it+to+an+object+with+prop1+and+prop2.%0A'
138 19 INIT_METHOD_CALL 'test_results'
20 INSTANCEOF ~15 !3, 'stdClass'
21 SEND_VAL_EX ~15
22 DO_FCALL 0 $16
23 SEND_VAR $16
133 24 DO_ICALL
132 25 > JMP ->34
141 26 > INIT_FCALL 'printf'
145 27 SEND_VAL '%0A%0A__set%28%29+results+should+set+the+value+%25s+and+not+throw+a+deprecation+on+PHP+8.2%2B.The+set+value+should+remain+set+when+invoking+__get%28%29%0A'
146 28 INIT_METHOD_CALL 'test_results'
29 IS_IDENTICAL ~18 !1, !3
30 SEND_VAL_EX ~18
31 DO_FCALL 0 $19
32 SEND_VAR $19
141 33 DO_ICALL
150 34 > INIT_FCALL 'var_dump'
35 SEND_VAR !3
36 DO_ICALL
151 37 > RETURN null
End of function test_set
Function test_unset:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 19
Branch analysis from position: 9
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: test_unset
number of ops: 32
compiled vars: !0 = $prop, !1 = $actual, !2 = $message
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
153 0 E > RECV !0
154 1 FETCH_OBJ_UNSET $3 'obj'
2 UNSET_OBJ $3, !0
155 3 FETCH_OBJ_R ~4 'obj'
4 FETCH_OBJ_R ~5 ~4, !0
5 ASSIGN !1, ~5
157 6 ASSIGN !2, '%0A%0A__unset%28%29+%2B+__get%28%29+results+should+be+%25s+%25s%0A'
158 7 FETCH_OBJ_R ~8 'is_known_prop'
8 > JMPZ ~8, ->19
159 9 > INIT_FCALL 'printf'
160 10 SEND_VAR !2
161 11 SEND_VAL 're-init+the+object+with+prop1+and+prop2'
162 12 INIT_METHOD_CALL 'test_results'
13 INSTANCEOF ~9 !1, 'stdClass'
14 SEND_VAL_EX ~9
15 DO_FCALL 0 $10
16 SEND_VAR $10
159 17 DO_ICALL
158 18 > JMP ->28
165 19 > INIT_FCALL 'printf'
166 20 SEND_VAR !2
167 21 SEND_VAL 'null'
168 22 INIT_METHOD_CALL 'test_results'
23 TYPE_CHECK 2 ~12 !1
24 SEND_VAL_EX ~12
25 DO_FCALL 0 $13
26 SEND_VAR $13
165 27 DO_ICALL
171 28 > INIT_FCALL 'var_dump'
29 SEND_VAR !1
30 DO_ICALL
172 31 > RETURN null
End of function test_unset
Function test_results:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 2, Position 2 = 4
Branch analysis from position: 2
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6gXXU
function name: test_results
number of ops: 7
compiled vars: !0 = $actual
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
174 0 E > RECV !0
175 1 > JMPZ !0, ->4
2 > QM_ASSIGN ~1 '%E2%9C%85'
3 > JMP ->5
4 > QM_ASSIGN ~1 '%E2%9D%8C'
5 > > RETURN ~1
176 6* > RETURN null
End of function test_results
End of class TestMagicMethods.
Generated using Vulcan Logic Dumper, using php 8.0.0