Annotation of embedaddon/php/tests/classes/array_access_002.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: ZE2 ArrayAccess::offsetSet without return
3: --FILE--
4: <?php
5: class object implements ArrayAccess {
6:
7: public $a = array('1st', 1, 2=>'3rd', '4th'=>4);
8:
9: function offsetExists($index) {
10: echo __METHOD__ . "($index)\n";
11: return array_key_exists($index, $this->a);
12: }
13: function offsetGet($index) {
14: echo __METHOD__ . "($index)\n";
15: return $this->a[$index];
16: }
17: function offsetSet($index, $newval) {
18: echo __METHOD__ . "($index,$newval)\n";
19: /*return*/ $this->a[$index] = $newval;
20: }
21: function offsetUnset($index) {
22: echo __METHOD__ . "($index)\n";
23: unset($this->a[$index]);
24: }
25: }
26:
27: $obj = new Object;
28:
29: var_dump($obj->a);
30:
31: echo "===EMPTY===\n";
32: var_dump(empty($obj[0]));
33: var_dump(empty($obj[1]));
34: var_dump(empty($obj[2]));
35: var_dump(empty($obj['4th']));
36: var_dump(empty($obj['5th']));
37: var_dump(empty($obj[6]));
38:
39: echo "===isset===\n";
40: var_dump(isset($obj[0]));
41: var_dump(isset($obj[1]));
42: var_dump(isset($obj[2]));
43: var_dump(isset($obj['4th']));
44: var_dump(isset($obj['5th']));
45: var_dump(isset($obj[6]));
46:
47: echo "===offsetGet===\n";
48: var_dump($obj[0]);
49: var_dump($obj[1]);
50: var_dump($obj[2]);
51: var_dump($obj['4th']);
52: var_dump($obj['5th']);
53: var_dump($obj[6]);
54:
55: echo "===offsetSet===\n";
56: echo "WRITE 1\n";
57: $obj[1] = 'Changed 1';
58: var_dump($obj[1]);
59: echo "WRITE 2\n";
60: $obj['4th'] = 'Changed 4th';
61: var_dump($obj['4th']);
62: echo "WRITE 3\n";
63: $obj['5th'] = 'Added 5th';
64: var_dump($obj['5th']);
65: echo "WRITE 4\n";
66: $obj[6] = 'Added 6';
67: var_dump($obj[6]);
68:
69: var_dump($obj[0]);
70: var_dump($obj[2]);
71:
72: $x = $obj[6] = 'changed 6';
73: var_dump($obj[6]);
74: var_dump($x);
75:
76: echo "===unset===\n";
77: var_dump($obj->a);
78: unset($obj[2]);
79: unset($obj['4th']);
80: unset($obj[7]);
81: unset($obj['8th']);
82: var_dump($obj->a);
83:
84: ?>
85: ===DONE===
86: --EXPECTF--
87: array(4) {
88: [0]=>
89: string(3) "1st"
90: [1]=>
91: int(1)
92: [2]=>
93: string(3) "3rd"
94: ["4th"]=>
95: int(4)
96: }
97: ===EMPTY===
98: object::offsetExists(0)
99: object::offsetGet(0)
100: bool(false)
101: object::offsetExists(1)
102: object::offsetGet(1)
103: bool(false)
104: object::offsetExists(2)
105: object::offsetGet(2)
106: bool(false)
107: object::offsetExists(4th)
108: object::offsetGet(4th)
109: bool(false)
110: object::offsetExists(5th)
111: bool(true)
112: object::offsetExists(6)
113: bool(true)
114: ===isset===
115: object::offsetExists(0)
116: bool(true)
117: object::offsetExists(1)
118: bool(true)
119: object::offsetExists(2)
120: bool(true)
121: object::offsetExists(4th)
122: bool(true)
123: object::offsetExists(5th)
124: bool(false)
125: object::offsetExists(6)
126: bool(false)
127: ===offsetGet===
128: object::offsetGet(0)
129: string(3) "1st"
130: object::offsetGet(1)
131: int(1)
132: object::offsetGet(2)
133: string(3) "3rd"
134: object::offsetGet(4th)
135: int(4)
136: object::offsetGet(5th)
137:
138: Notice: Undefined index: 5th in %sarray_access_002.php on line %d
139: NULL
140: object::offsetGet(6)
141:
142: Notice: Undefined offset: 6 in %sarray_access_002.php on line %d
143: NULL
144: ===offsetSet===
145: WRITE 1
146: object::offsetSet(1,Changed 1)
147: object::offsetGet(1)
148: string(9) "Changed 1"
149: WRITE 2
150: object::offsetSet(4th,Changed 4th)
151: object::offsetGet(4th)
152: string(11) "Changed 4th"
153: WRITE 3
154: object::offsetSet(5th,Added 5th)
155: object::offsetGet(5th)
156: string(9) "Added 5th"
157: WRITE 4
158: object::offsetSet(6,Added 6)
159: object::offsetGet(6)
160: string(7) "Added 6"
161: object::offsetGet(0)
162: string(3) "1st"
163: object::offsetGet(2)
164: string(3) "3rd"
165: object::offsetSet(6,changed 6)
166: object::offsetGet(6)
167: string(9) "changed 6"
168: string(9) "changed 6"
169: ===unset===
170: array(6) {
171: [0]=>
172: string(3) "1st"
173: [1]=>
174: string(9) "Changed 1"
175: [2]=>
176: string(3) "3rd"
177: ["4th"]=>
178: string(11) "Changed 4th"
179: ["5th"]=>
180: string(9) "Added 5th"
181: [6]=>
182: string(9) "changed 6"
183: }
184: object::offsetUnset(2)
185: object::offsetUnset(4th)
186: object::offsetUnset(7)
187: object::offsetUnset(8th)
188: array(4) {
189: [0]=>
190: string(3) "1st"
191: [1]=>
192: string(9) "Changed 1"
193: ["5th"]=>
194: string(9) "Added 5th"
195: [6]=>
196: string(9) "changed 6"
197: }
198: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>