@@ -3,6 +3,7 @@ foreach over hooked properties
3
3
--FILE--
4
4
<?php
5
5
6
+ #[AllowDynamicProperties]
6
7
class ByRef {
7
8
public $ plain = 'plain ' ;
8
9
private $ _virtualByRef = 'virtualByRef ' ;
@@ -16,8 +17,12 @@ class ByRef {
16
17
$ this ->_virtualByRef = $ value ;
17
18
}
18
19
}
20
+ public function __construct () {
21
+ $ this ->dynamic = 'dynamic ' ;
22
+ }
19
23
}
20
24
25
+ #[AllowDynamicProperties]
21
26
class ByVal extends ByRef {
22
27
private $ _virtualByVal = 'virtualByVal ' ;
23
28
public $ virtualByVal {
@@ -58,6 +63,7 @@ function testByRef($object) {
58
63
echo "$ prop => $ value \n" ;
59
64
$ value = strtoupper ($ value );
60
65
}
66
+ unset($ value );
61
67
var_dump ($ object );
62
68
}
63
69
@@ -74,7 +80,7 @@ testByVal(new ByRef);
74
80
testByRef (new ByRef );
75
81
76
82
?>
77
- --EXPECT --
83
+ --EXPECTF --
78
84
ByVal::$virtualByVal::get
79
85
virtualByVal => virtualByVal
80
86
ByVal::$virtualByVal::set
@@ -88,7 +94,8 @@ plain => plain
88
94
ByRef::$virtualByRef::get
89
95
virtualByRef => virtualByRef
90
96
ByRef::$virtualByRef::set
91
- object(ByVal)#1 (5) {
97
+ dynamic => dynamic
98
+ object(ByVal)#%d (6) {
92
99
["plain"]=>
93
100
string(5) "PLAIN"
94
101
["_virtualByRef":"ByRef":private]=>
@@ -99,23 +106,31 @@ object(ByVal)#1 (5) {
99
106
string(6) "BACKED"
100
107
["backedUninitialized"]=>
101
108
string(19) "BACKEDUNINITIALIZED"
109
+ ["dynamic"]=>
110
+ string(7) "DYNAMIC"
102
111
}
103
112
plain => plain
104
113
ByRef::$virtualByRef::get
105
114
virtualByRef => virtualByRef
106
115
ByRef::$virtualByRef::set
107
- object(ByRef)#1 (2) {
116
+ dynamic => dynamic
117
+ object(ByRef)#%d (3) {
108
118
["plain"]=>
109
119
string(5) "PLAIN"
110
120
["_virtualByRef":"ByRef":private]=>
111
121
string(12) "VIRTUALBYREF"
122
+ ["dynamic"]=>
123
+ string(7) "DYNAMIC"
112
124
}
113
125
plain => plain
114
126
ByRef::$virtualByRef::get
115
127
virtualByRef => virtualByRef
116
- object(ByRef)#1 (2) {
128
+ dynamic => dynamic
129
+ object(ByRef)#%d (3) {
117
130
["plain"]=>
118
131
string(5) "PLAIN"
119
132
["_virtualByRef":"ByRef":private]=>
120
- &string(12) "VIRTUALBYREF"
133
+ string(12) "VIRTUALBYREF"
134
+ ["dynamic"]=>
135
+ string(7) "DYNAMIC"
121
136
}
0 commit comments