@@ -7,112 +7,118 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . 'test_offset_helpers.inc';
7
7
8
8
const EXPECTED_OUTPUT = <<<OUTPUT
9
9
Read before write:
10
- string(12) "A ::offsetGet"
10
+ string(12) "CLASS_NAME ::offsetGet"
11
11
VAR_DUMP_OF_OFFSET
12
12
int(5)
13
13
Write:
14
- string(12) "A ::offsetSet"
14
+ string(12) "CLASS_NAME ::offsetSet"
15
15
VAR_DUMP_OF_OFFSET
16
16
int(5)
17
17
Read:
18
- string(12) "A ::offsetGet"
18
+ string(12) "CLASS_NAME ::offsetGet"
19
19
VAR_DUMP_OF_OFFSET
20
20
int(5)
21
21
Read-Write:
22
- string(12) "A ::offsetGet"
22
+ string(12) "CLASS_NAME ::offsetGet"
23
23
VAR_DUMP_OF_OFFSET
24
- string(12) "A ::offsetSet"
24
+ string(12) "CLASS_NAME ::offsetSet"
25
25
VAR_DUMP_OF_OFFSET
26
26
int(25)
27
27
isset():
28
- string(15) "A ::offsetExists"
28
+ string(15) "CLASS_NAME ::offsetExists"
29
29
VAR_DUMP_OF_OFFSET
30
30
bool(true)
31
31
empty():
32
- string(15) "A ::offsetExists"
32
+ string(15) "CLASS_NAME ::offsetExists"
33
33
VAR_DUMP_OF_OFFSET
34
- string(12) "A ::offsetGet"
34
+ string(12) "CLASS_NAME ::offsetGet"
35
35
VAR_DUMP_OF_OFFSET
36
36
bool(false)
37
37
null coalesce:
38
- string(15) "A ::offsetExists"
38
+ string(15) "CLASS_NAME ::offsetExists"
39
39
VAR_DUMP_OF_OFFSET
40
- string(12) "A ::offsetGet"
40
+ string(12) "CLASS_NAME ::offsetGet"
41
41
VAR_DUMP_OF_OFFSET
42
42
int(5)
43
43
unset():
44
- string(14) "A ::offsetUnset"
44
+ string(14) "CLASS_NAME ::offsetUnset"
45
45
VAR_DUMP_OF_OFFSET
46
46
Nested read:
47
- string(12) "A ::offsetGet"
47
+ string(12) "CLASS_NAME ::offsetGet"
48
48
VAR_DUMP_OF_OFFSET
49
49
50
50
Warning: Trying to access array offset on int in %s on line 62
51
51
NULL
52
52
Nested write:
53
- string(12) "A ::offsetGet"
53
+ string(12) "CLASS_NAME ::offsetGet"
54
54
VAR_DUMP_OF_OFFSET
55
55
56
- Notice: Indirect modification of overloaded element of A has no effect in %s on line 69
56
+ Notice: Indirect modification of overloaded element of CLASS_NAME has no effect in %s on line 69
57
57
Cannot use a scalar value as an array
58
58
Nested Read-Write:
59
- string(12) "A ::offsetGet"
59
+ string(12) "CLASS_NAME ::offsetGet"
60
60
VAR_DUMP_OF_OFFSET
61
61
62
- Notice: Indirect modification of overloaded element of A has no effect in %s on line 76
62
+ Notice: Indirect modification of overloaded element of CLASS_NAME has no effect in %s on line 76
63
63
Cannot use a scalar value as an array
64
64
Nested isset():
65
- string(15) "A ::offsetExists"
65
+ string(15) "CLASS_NAME ::offsetExists"
66
66
VAR_DUMP_OF_OFFSET
67
- string(12) "A ::offsetGet"
67
+ string(12) "CLASS_NAME ::offsetGet"
68
68
VAR_DUMP_OF_OFFSET
69
69
bool(false)
70
70
Nested empty():
71
- string(15) "A ::offsetExists"
71
+ string(15) "CLASS_NAME ::offsetExists"
72
72
VAR_DUMP_OF_OFFSET
73
- string(12) "A ::offsetGet"
73
+ string(12) "CLASS_NAME ::offsetGet"
74
74
VAR_DUMP_OF_OFFSET
75
75
bool(true)
76
76
Nested null coalesce:
77
- string(15) "A ::offsetExists"
77
+ string(15) "CLASS_NAME ::offsetExists"
78
78
VAR_DUMP_OF_OFFSET
79
- string(12) "A ::offsetGet"
79
+ string(12) "CLASS_NAME ::offsetGet"
80
80
VAR_DUMP_OF_OFFSET
81
81
string(7) "default"
82
82
Nested unset():
83
- string(12) "A ::offsetGet"
83
+ string(12) "CLASS_NAME ::offsetGet"
84
84
VAR_DUMP_OF_OFFSET
85
85
86
- Notice: Indirect modification of overloaded element of A has no effect in %s on line 102
86
+ Notice: Indirect modification of overloaded element of CLASS_NAME has no effect in %s on line 102
87
87
Cannot unset offset in a non-array variable
88
88
89
89
OUTPUT ;
90
90
91
91
ob_start ();
92
- foreach ($ offsets as $ dimension ) {
93
- $ container = new A ();
94
- $ error = '(new A())[ ' . zend_test_var_export ($ dimension ) . '] has different outputs ' . "\n" ;
95
- ob_start ();
96
- var_dump ($ dimension );
97
- $ var_dump_output = ob_get_clean ();
92
+ foreach (['A ' , 'B ' ] as $ class ) {
93
+ foreach ($ offsets as $ dimension ) {
94
+ $ container = new $ class ();
95
+ $ error = "(new $ class())[ " . zend_test_var_export ($ dimension ) . '] has different outputs ' . "\n" ;
96
+ ob_start ();
97
+ var_dump ($ dimension );
98
+ $ var_dump_output = ob_get_clean ();
98
99
99
- include $ var_dim_filename ;
100
- $ varOutput = ob_get_contents ();
101
- ob_clean ();
102
- $ varOutput = str_replace (
103
- [$ var_dim_filename ],
104
- ['%s ' ],
105
- $ varOutput
106
- );
100
+ include $ var_dim_filename ;
101
+ $ varOutput = ob_get_contents ();
102
+ ob_clean ();
103
+ $ varOutput = str_replace (
104
+ [$ var_dim_filename ],
105
+ ['%s ' ],
106
+ $ varOutput
107
+ );
107
108
108
- $ expected_output = str_replace ("VAR_DUMP_OF_OFFSET \n" , $ var_dump_output , EXPECTED_OUTPUT );
109
+ $ expected_output = str_replace (
110
+ ["VAR_DUMP_OF_OFFSET \n" , "CLASS_NAME " ],
111
+ [$ var_dump_output , $ class ],
112
+ EXPECTED_OUTPUT
113
+ );
109
114
110
- if ($ varOutput !== $ expected_output ) {
111
- file_put_contents (__DIR__ . DIRECTORY_SEPARATOR . "debug_ArrayAccess_container_ {$ failuresNb }.txt " , $ varOutput );
112
- ++$ failuresNb ;
113
- $ failures [] = $ error ;
115
+ if ($ varOutput !== $ expected_output ) {
116
+ file_put_contents (__DIR__ . DIRECTORY_SEPARATOR . "debug_ArrayAccess_container_ {$ failuresNb }.txt " , $ varOutput );
117
+ ++$ failuresNb ;
118
+ $ failures [] = $ error ;
119
+ }
120
+ ++$ testCasesTotal ;
114
121
}
115
- ++$ testCasesTotal ;
116
122
}
117
123
ob_end_clean ();
118
124
0 commit comments